#compdef _prototool prototool


function _prototool {
  local -a commands

  _arguments -C \
    '--debug[Run in debug mode, which will print out debug logging.]' \
    "1: :->cmnds" \
    "*::arg:->args"

  case $state in
  cmnds)
    commands=(
      "all:Compile, then format and overwrite, then re-compile and generate, then lint, stopping if any step fails."
      "break:Top-level command for breaking change commands."
      "cache:Interact with the cache."
      "compile:Compile with protoc to check for failures."
      "config:Interact with configuration files."
      "create:Create the given Protobuf files according to a template that passes default prototool lint."
      "descriptor-set:Generate a FileDescriptorSet containing all files."
      "files:Print all files that match the input arguments."
      "format:Format a proto file and compile with protoc to check for failures."
      "generate:Generate with protoc."
      "grpc:Call a gRPC endpoint. Be sure to set the required flags address, method, and either data or stdin."
      "lint:Lint proto files and compile with protoc to check for failures."
      "version:Print the version."
      "x:Top-level command for experimental commands. These may change between minor versions."
    )
    _describe "command" commands
    ;;
  esac

  case "$words[1]" in
  all)
    _prototool_all
    ;;
  break)
    _prototool_break
    ;;
  cache)
    _prototool_cache
    ;;
  compile)
    _prototool_compile
    ;;
  config)
    _prototool_config
    ;;
  create)
    _prototool_create
    ;;
  descriptor-set)
    _prototool_descriptor-set
    ;;
  files)
    _prototool_files
    ;;
  format)
    _prototool_format
    ;;
  generate)
    _prototool_generate
    ;;
  grpc)
    _prototool_grpc
    ;;
  lint)
    _prototool_lint
    ;;
  version)
    _prototool_version
    ;;
  x)
    _prototool_x
    ;;
  esac
}

function _prototool_all {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--disable-format[Do not run formatting.]' \
    '--disable-lint[Do not run linting.]' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '(-f --fix)'{-f,--fix}'[Fix the file according to the Style Guide.]' \
    '--json[Output as JSON.]' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}


function _prototool_break {
  local -a commands

  _arguments -C \
    '--debug[Run in debug mode, which will print out debug logging.]' \
    "1: :->cmnds" \
    "*::arg:->args"

  case $state in
  cmnds)
    commands=(
      "check:Check for breaking changes."
      "descriptor-set:Generate a FileDescriptorSet file that stores the current state of your Protobuf definitions for use with break check --descriptor-set-path. The -o flag is required."
    )
    _describe "command" commands
    ;;
  esac

  case "$words[1]" in
  check)
    _prototool_break_check
    ;;
  descriptor-set)
    _prototool_break_descriptor-set
    ;;
  esac
}

function _prototool_break_check {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '(-f --descriptor-set-path)'{-f,--descriptor-set-path}'[The path to the file containing a serialized FileDescriptorSet to check against.
FileDescriptorSet files can be produced using the descriptor-set sub-command.
The default behavior is to check against a git branch or tag. This cannot be used with the --git-branch flag.]:' \
    '--git-branch[The git branch or tag to check against. The default is the default branch.]:' \
    '--json[Output as JSON.]' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_break_descriptor-set {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--json[Output as JSON.]' \
    '(-o --output-path)'{-o,--output-path}'[The file path to write the FileDescriptorSet to. This is required.]:' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}


function _prototool_cache {
  local -a commands

  _arguments -C \
    '--debug[Run in debug mode, which will print out debug logging.]' \
    "1: :->cmnds" \
    "*::arg:->args"

  case $state in
  cmnds)
    commands=(
      "delete:Delete all artifacts in the default cache."
      "update:Update the cache by downloading all artifacts."
    )
    _describe "command" commands
    ;;
  esac

  case "$words[1]" in
  delete)
    _prototool_cache_delete
    ;;
  update)
    _prototool_cache_update
    ;;
  esac
}

function _prototool_cache_delete {
  _arguments \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_cache_update {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_compile {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--dry-run[Print the protoc commands that would have been run without actually running them.]' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--json[Output as JSON.]' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}


function _prototool_config {
  local -a commands

  _arguments -C \
    '--debug[Run in debug mode, which will print out debug logging.]' \
    "1: :->cmnds" \
    "*::arg:->args"

  case $state in
  cmnds)
    commands=(
      "init:Generate an initial config file in the current or given directory."
    )
    _describe "command" commands
    ;;
  esac

  case "$words[1]" in
  init)
    _prototool_config_init
    ;;
  esac
}

function _prototool_config_init {
  _arguments \
    '--document[Document all available options. Automatically set if --uncomment is set.]' \
    '--uncomment[Uncomment the example config settings. Automatically sets --document.]' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_create {
  _arguments \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--package[The Protobuf package to use in the created file.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_descriptor-set {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--include-imports[Include all dependencies of the input files in the set, so that the set is self-contained.]' \
    '--include-source-info[Do not strip SourceCodeInfo from the FileDescriptorProto. This results in vastly larger descriptors that include information about the original location of each decl in the source file as well as surrounding comments.]' \
    '--json[Output as JSON.]' \
    '(-o --output-path)'{-o,--output-path}'[Write the FileDescriptorSet to the given file path instead of outputting to stdout.]:' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--tmp[Write the FileDescriptorSet to a temporary file and print the file path instead of outputting to stdout.]' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_files {
  _arguments \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_format {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '(-d --diff)'{-d,--diff}'[Write a diff instead of writing the formatted file to stdout.]' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '(-f --fix)'{-f,--fix}'[Fix the file according to the Style Guide.]' \
    '--json[Output as JSON.]' \
    '(-l --lint)'{-l,--lint}'[Write a lint error saying that the file is not formatted instead of writing the formatted file to stdout.]' \
    '(-w --overwrite)'{-w,--overwrite}'[Overwrite the existing file instead of writing the formatted file to stdout.]' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_generate {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--dry-run[Print the protoc commands that would have been run without actually running them.]' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--json[Output as JSON.]' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_grpc {
  _arguments \
    '--address[The GRPC endpoint to connect to. This is required.]:' \
    '--cacert[File containing trusted root certificates for verifying the server. Can also be a file containing the public certificate of the server itself. If set, --tls is required.]:' \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--call-timeout[The maximum time to for all calls to be completed.]:' \
    '--cert[File containing client certificate (public key) in pem encoded format to present to the server for mutual TLS authentication. If set, --tls and --key is required.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--connect-timeout[The maximum time to wait for the connection to be established.]:' \
    '--data[The GRPC request data in JSON format. Either this or --stdin is required.]:' \
    '--details[Output headers, trailers, and status as well as the responses.]' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '(*-H *--header)'{\*-H,\*--header}'[Additional request headers in '\''name:value'\'' format.]:' \
    '--insecure[Disable host certificate validation for TLS connections. If set, --tls is required and --cert, --key, --cacert and --server-name must not be set.]' \
    '--keepalive-time[The maximum idle time after which a keepalive probe is sent.]:' \
    '--key[File containing client key (private key) in pem encoded format to use for mutual TLS authentication. If set, --tls and --cert is required.]:' \
    '--method[The GRPC method to call in the form package.Service/Method. This is required.]:' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--server-name[Override expected server "Common Name" when validating TLS certificate. Should usually be set if using a HTTP proxy or an IP for the --address. If set, --tls is required.]:' \
    '--stdin[Read the GRPC request data from stdin in JSON format. Either this or --data is required.]' \
    '--tls[Enable SSL/TLS connection to remote host.]' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_lint {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--diff-lint-groups[Diff the two lint groups separated by '\''.'\'', for example google,uber2.]:' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--generate-ignores[Generate a lint.ignores configuration to stdout that reflects current lint failures.
This can be copied to your configuration file.]' \
    '--json[Output as JSON.]' \
    '--list-all-lint-groups[List all available lint groups instead of running lint.]' \
    '--list-all-linters[List all available linters instead of running lint.]' \
    '--list-lint-group[List the linters in the given lint group instead of running lint.]:' \
    '--list-linters[List the configured linters instead of running lint.]' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_version {
  _arguments \
    '--json[Output as JSON.]' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}


function _prototool_x {
  local -a commands

  _arguments -C \
    '--debug[Run in debug mode, which will print out debug logging.]' \
    "1: :->cmnds" \
    "*::arg:->args"

  case $state in
  cmnds)
    commands=(
      "inspect:Top-level command for inspection commands."
    )
    _describe "command" commands
    ;;
  esac

  case "$words[1]" in
  inspect)
    _prototool_x_inspect
    ;;
  esac
}


function _prototool_x_inspect {
  local -a commands

  _arguments -C \
    '--debug[Run in debug mode, which will print out debug logging.]' \
    "1: :->cmnds" \
    "*::arg:->args"

  case $state in
  cmnds)
    commands=(
      "package-deps:Print the given package dependencies. Be sure to set the required flag name."
      "package-importers:Print the given package importers. Be sure to set the required flag name."
      "packages:List all packages."
    )
    _describe "command" commands
    ;;
  esac

  case "$words[1]" in
  package-deps)
    _prototool_x_inspect_package-deps
    ;;
  package-importers)
    _prototool_x_inspect_package-importers
    ;;
  packages)
    _prototool_x_inspect_packages
    ;;
  esac
}

function _prototool_x_inspect_package-deps {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--name[The package name. This is required.]:' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_x_inspect_package-importers {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--name[The package name. This is required.]:' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

function _prototool_x_inspect_packages {
  _arguments \
    '--cache-path[The path to use for the cache, otherwise uses the default behavior. The user is expected to clean and manage this cache path. See prototool help cache update for more details.]:' \
    '--config-data[The configuration data to use instead of reading prototool.yaml or prototool.json files.
This will act as if there is a configuration file with the given data in the current directory, and no other configuration files recursively.
This is an advanced feature and is not recommended to be generally used.]:' \
    '--error-format[The colon-separated fields to print out on error. Valid values are "filename:line:column:id:message".]:' \
    '--protoc-bin-path[The path to the protoc binary. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-wkt-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_BIN_PATH environment variable, however this flag takes precedence.]:' \
    '--protoc-url[The url to use to download the protoc zip file, otherwise uses GitHub Releases. Setting this option will ignore the config protoc.version setting.]:' \
    '--protoc-wkt-path[The path to the well-known types. Setting this option will ignore the config protoc.version setting.
This flag must be used with protoc-bin-path and must not be used with the protoc-url flag.
This setting can also be controlled using the $PROTOTOOL_PROTOC_WKT_PATH environment variable, however this flag takes precedence.]:' \
    '--walk-timeout[The maximum time to allow for walking the directory structure looking for proto files.]:' \
    '--debug[Run in debug mode, which will print out debug logging.]'
}

