#compdef _memsql-report memsql-report


function _memsql-report {
  local -a commands

  _arguments -C \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-h --help)'{-h,--help}'[Help for memsql-report]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]' \
    "1: :->cmnds" \
    "*::arg:->args"

  case $state in
  cmnds)
    commands=(
      "calibrate:Run 'calibrate' to measure cluster performance"
      "calibrate-blob-storage:Run 'calibrate-blob-storage' on S3-compatible object stores to measure blob storage performance"
      "check:Checks the provided report for issues"
      "collect:Build a diagnostics report for the cluster"
      "collect-and-check:Build a diagnostics report for the cluster and check it for issues"
      "collect-kube:Build a diagnostics report for the kube cluster"
      "collect-local:Build a diagnostics report for the local host"
      "env:Display the Toolbox runtime environment"
      "help:Help about any command"
      "send-alert:Build a diagnostics report for the cluster and send an alert if any issues are found"
      "state:Display the Toolbox State File contents"
      "version:Display the Toolbox version"
    )
    _describe "command" commands
    ;;
  esac

  case "$words[1]" in
  calibrate)
    _memsql-report_calibrate
    ;;
  calibrate-blob-storage)
    _memsql-report_calibrate-blob-storage
    ;;
  check)
    _memsql-report_check
    ;;
  collect)
    _memsql-report_collect
    ;;
  collect-and-check)
    _memsql-report_collect-and-check
    ;;
  collect-kube)
    _memsql-report_collect-kube
    ;;
  collect-local)
    _memsql-report_collect-local
    ;;
  env)
    _memsql-report_env
    ;;
  help)
    _memsql-report_help
    ;;
  send-alert)
    _memsql-report_send-alert
    ;;
  state)
    _memsql-report_state
    ;;
  version)
    _memsql-report_version
    ;;
  esac
}

function _memsql-report_calibrate {
  _arguments \
    '--data-path[The absolute path to the folder on the Master Aggregator that contains the calibration datasets]:' \
    '(-h --help)'{-h,--help}'[Help for calibrate]' \
    '--partition-ratio[The ratio of CPU cores to database partitions (CPU cores:database partitions) where both values must be less than or equal to 16]:' \
    '(-p --password)'{-p,--password}'[The database user'\''s password for connecting to SingleStore. If a password is specified on the command line, it must not contain an unescaped '\''$'\'' character as it will be replaced by the shell]:' \
    '--retain-database[Retain the ‘calibrate’ database after the calibration process completes]' \
    '--temp-dir[The directory on the Master Aggregator in which to unpack the dataset (ADVANCED)]:' \
    '(-u --user)'{-u,--user}'[The database user for connecting to SingleStore]:' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_calibrate-blob-storage {
  _arguments \
    '--blob-cache-eviction[Set a timeout for the blob cache cleanup performed during the download test (ADVANCED)]:' \
    '(-h --help)'{-h,--help}'[Help for calibrate-blob-storage]' \
    '(-p --password)'{-p,--password}'[The database user'\''s password for connecting to SingleStore. If a password is specified on the command line, it must not contain an unescaped '\''$'\'' character as it will be replaced by the shell]:' \
    '(-r --repository)'{-r,--repository}'[Path to the repository in the URL format. See https://docs.singlestore.com/toolbox-redir/memsql-backup-repository for examples]:' \
    '(-u --user)'{-u,--user}'[The database user for connecting to SingleStore]:' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_check {
  _arguments \
    '--exclude[Exclude the specified checkers]:' \
    '--exclude-global[Exclude global collectors from the report file checker]' \
    '(-h --help)'{-h,--help}'[Help for check]' \
    '--include[Include the specified checkers]:' \
    '--include-performance[Include checkers that create load on cluster (not recommended for active clusters)]' \
    '--mask-ip[Mask usernames, hostnames, IP and MAC addresses in the report file checker]' \
    '--only[Only run the specified checkers]:' \
    '(-i --report-path)'{-i,--report-path}'[Read the report from the specified tarball or directory. If you do not already have a report, run '\''memsql-report collect'\'' to generate one]:' \
    '--security-recommendations[Only run the security checklist checks]' \
    '--show-skips[Display more information about skipped checks]' \
    '--temp-dir[The directory to store temporary files during checks (ADVANCED)]:' \
    '--validate-env[Run checkers that do not require SingleStore installation (performance checkers included)]' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_collect {
  _arguments \
    '--exclude[Exclude the specified collectors]:' \
    '--exclude-global[Exclude global collectors from the report file collector]' \
    '(-h --help)'{-h,--help}'[Help for collect]' \
    '*--host[Specify host(s) to collect from (collects from all hosts by default)]:' \
    '--include[Include the specified collectors]:' \
    '--include-performance[Include collectors that create load on cluster (not recommended for active clusters)]' \
    '--mask-ip[Mask usernames, hostnames, IP and MAC addresses in the report file collector]' \
    '--merge-path[The directory from which to merge reports. (ADVANCED)]:' \
    '--only[Only run the specified collectors]:' \
    '--opt[Specify collector options]:' \
    '(-o --output-path)'{-o,--output-path}'[Write the report tarball to this file path]:' \
    '--security-recommendations[Only run the security checklist checks]' \
    '--shard-queries[Shard queries across aggregators. All queries are run on the Master Aggregator node by default (ADVANCED)]' \
    '--temp-dir[The directory on the local and remote host(s) to store temporary files during collection (ADVANCED)]:' \
    '--validate-env[Run collectors that do not require SingleStore installation (performance collectors included)]' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_collect-and-check {
  _arguments \
    '--exclude[Exclude the specified collectors]:' \
    '--exclude-global[Exclude global collectors from the report file collector]' \
    '(-h --help)'{-h,--help}'[Help for collect-and-check]' \
    '*--host[Specify host(s) to collect from (collects from all hosts by default)]:' \
    '--include[Include the specified collectors]:' \
    '--include-performance[Include collectors that create load on cluster (not recommended for active clusters)]' \
    '--mask-ip[Mask usernames, hostnames, IP and MAC addresses in the report file collector]' \
    '--only[Only run the specified collectors]:' \
    '--opt[Specify collector options]:' \
    '--security-recommendations[Only run the security checklist checks]' \
    '--shard-queries[Shard queries across aggregators. All queries are run on the Master Aggregator node by default (ADVANCED)]' \
    '--show-skips[Display more information about skipped checks]' \
    '--temp-dir[The directory on the local and remote host(s) to store temporary files during collection and checks (ADVANCED)]:' \
    '--validate-env[Run collectors that do not require SingleStore installation (performance collectors included)]' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_collect-kube {
  _arguments \
    '--cluster-name[The specific cluster name(s) to discover, separated by commas. Leave blank for all clusters]:' \
    '--config-file[The kube config filepath. Leave blank if the path is stored in the KUBECONFIG env variable or in the ~/.kube/config file (ADVANCED)]:' \
    '--container[The name of the container in which to run the command. If not specified, the default container will be used (ADVANCED)]:' \
    '--context[The specific kube context to switch to when a kubeconfig has multiple contexts (ADVANCED)]:' \
    '--exclude[Exclude the specified collectors]:' \
    '--exclude-global[Exclude global collectors from the report file collector]' \
    '(-h --help)'{-h,--help}'[Help for collect-kube]' \
    '*--host[Specify host(s) to collect from (collects from all hosts by default)]:' \
    '--include[Include the specified collectors]:' \
    '--include-performance[Include collectors that create load on cluster (not recommended for active clusters)]' \
    '--mask-ip[Mask usernames, hostnames, IP and MAC addresses in the report file collector]' \
    '--merge-path[The directory from which to merge reports (ADVANCED)]:' \
    '--namespace[The kube namespace(s) from which to collect reports, separated by commas. If missing, the default namespace will be used]:' \
    '--only[Only run the specified collectors]:' \
    '--opt[Specify collector options]:' \
    '(-o --output-path)'{-o,--output-path}'[Write the report tarball to this file path]:' \
    '--security-recommendations[Only run the security checklist checks]' \
    '--shard-queries[Shard queries across aggregators. All queries are run on the Master Aggregator node by default (ADVANCED)]' \
    '--temp-dir[The directory on the local and remote host(s) to store temporary files during collection (ADVANCED)]:' \
    '--validate-env[Run collectors that do not require SingleStore installation (performance collectors included)]' \
    '--version[Either v1 or v2; if missing, both v1 and v2 clusters will be discovered (ADVANCED)]:' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_collect-local {
  _arguments \
    '--exclude[Exclude the specified collectors]:' \
    '--exclude-global[Exclude global collectors from the report file collector]' \
    '(-h --help)'{-h,--help}'[Help for collect-local]' \
    '--hostname[Customize the hostname for this report]:' \
    '--include[Include the specified collectors]:' \
    '--include-performance[Include collectors that create load on cluster (not recommended for active clusters)]' \
    '--mask-ip[Mask usernames, hostnames, IP and MAC addresses in the report file collector]' \
    '--memsqlctl-config-path[The path to the memsqlctl.hcl file on this host. (ADVANCED)]:' \
    '--memsqlctl-path[The path to the memsqlctl binary on this host. (ADVANCED)]:' \
    '--only[Only run the specified collectors]:' \
    '--opt[Specify collector options]:' \
    '(-o --output-path)'{-o,--output-path}'[Write the report tarball to this file path]:' \
    '--security-recommendations[Only run the security checklist checks]' \
    '--shard-queries[Shard queries across all aggregator nodes in the cluster]' \
    '--validate-env[Run collectors that do not require SingleStore installation (performance collectors included)]' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_env {
  _arguments \
    '(-h --help)'{-h,--help}'[Help for env]' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_help {
  _arguments \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_send-alert {
  _arguments \
    '--alert-location[Path to the SMTP config file (ADVANCED)]:' \
    '--config-file[Path to the alerting config YAML file. Specify both the thresholds and this path in the alerting config file]:' \
    '--fail-only[Send alerts only for failed checks]' \
    '(-h --help)'{-h,--help}'[Help for send-alert]' \
    '--summary-only[Include only summaries in alerts]' \
    '--thresholds[Alert thresholds config YAML or path to YAML (ADVANCED)]:' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_state {
  _arguments \
    '(-h --help)'{-h,--help}'[Help for state]' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

function _memsql-report_version {
  _arguments \
    '(-h --help)'{-h,--help}'[Help for version]' \
    '--backup-cache[File path for the backup cache]:' \
    '--cache-file[File path for the Toolbox node cache]:' \
    '(-c --config)'{-c,--config}'[File path for the Toolbox configuration]:' \
    '--disable-colors[Disable color output in console, which some terminal sessions/environments may have difficulty with]' \
    '--disable-spinner[Disable the progress spinner, which some terminal sessions/environments may have issues with]' \
    '(-j --json)'{-j,--json}'[Enable JSON output]' \
    '--parallelism[Maximum number of operations to run in parallel]:' \
    '--runtime-dir[Where to store Toolbox runtime data]:' \
    '--ssh-control-persist[Enable SSH ControlPersist and set it to the specified duration in seconds]:' \
    '--ssh-max-sessions[Maximum number of SSH sessions to open per host, must be at least 3]:' \
    '--ssh-strict-host-key-checking[Enable strict host key checking for SSH connections]' \
    '--ssh-user-known-hosts-file[Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used]:' \
    '--state-file[Toolbox state file path]:' \
    '(-v --verbosity)'{-v,--verbosity}'[Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count]' \
    '(-y --yes)'{-y,--yes}'[Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default]'
}

