_cli_zsh_autocomplete() {

  local -a cmds
  cmds=(
        'complete:Generate bash, fish or zsh completions.'
        'completion:Generate bash, fish or zsh completions.'
        'man:Generate the man page documentation.'
        'markdown:Generate the markdown documentation.'
        'md:Generate the markdown documentation.'
        'config:Outputs a commented version of the configuration file that could be used
by CRI-O. This allows you to save you current configuration setup and then load
it later with **--config**. Global options will modify the output.'
        'version:display detailed version information'
        "wipe:wipe CRI-O's container and image storage"
        'help:Shows a list of commands or help for one command'
        'h:Shows a list of commands or help for one command'
  )
  _describe 'commands' cmds

  local -a opts
  opts=(
        '--absent-mount-sources-to-reject'
        '--add-inheritable-capabilities'
        '--additional-devices'
        '--address'
        '--allowed-devices'
        '--apparmor-profile'
        '--big-files-temporary-dir'
        '--bind-mount-prefix'
        '--blockio-config-file'
        '--cdi-spec-dirs'
        '--cgroup-manager'
        '--clean-shutdown-file'
        '--cni-config-dir'
        '--cni-default-network'
        '--cni-plugin-dir'
        '--config'
        '--config-dir'
        '--conmon'
        '--conmon-cgroup'
        '--conmon-env'
        '--container-attach-socket-dir'
        '--container-exits-dir'
        '--ctr-stop-timeout'
        '--decryption-keys-path'
        '--default-capabilities'
        '--default-env'
        '--default-mounts-file'
        '--default-runtime'
        '--default-sysctls'
        '--default-transport'
        '--default-ulimits'
        '--device-ownership-from-security-context'
        '--drop-infra-ctr'
        '--enable-criu-support'
        '--enable-metrics'
        '--enable-nri'
        '--enable-pod-events'
        '--enable-profile-unix-socket'
        '--enable-tracing'
        '--gid-mappings'
        '--global-auth-file'
        '--grpc-max-recv-msg-size'
        '--grpc-max-send-msg-size'
        '--hooks-dir'
        '--image-volumes'
        '--infra-ctr-cpuset'
        '--insecure-registry'
        '--internal-wipe'
        '--irqbalance-config-file'
        '--listen'
        '--log'
        '--log-dir'
        '--log-filter'
        '--log-format'
        '--log-journald'
        '--log-level'
        '--log-size-max'
        '--metrics-cert'
        '--metrics-collectors'
        '--metrics-key'
        '--metrics-port'
        '--metrics-socket'
        '--minimum-mappable-gid'
        '--minimum-mappable-uid'
        '--namespaces-dir'
        '--no-pivot'
        '--nri-config-file'
        '--nri-listen'
        '--nri-plugin-dir'
        '--pause-command'
        '--pause-image'
        '--pause-image-auth-file'
        '--pids-limit'
        '--pinns-path'
        '--profile'
        '--profile-cpu'
        '--profile-mem'
        '--profile-port'
        '--rdt-config-file'
        '--read-only'
        '--registries-conf'
        '--registries-conf-dir'
        '--registry'
        '--root'
        '--runroot'
        '--runtimes'
        '--seccomp-profile'
        '--seccomp-use-default-when-empty'
        '--selinux'
        '--separate-pull-cgroup'
        '--signature-policy'
        '--stats-collection-period'
        '--storage-driver'
        '--storage-opt'
        '--stream-address'
        '--stream-enable-tls'
        '--stream-idle-timeout'
        '--stream-port'
        '--stream-tls-ca'
        '--stream-tls-cert'
        '--stream-tls-key'
        '--tracing-endpoint'
        '--tracing-sampling-rate-per-million'
        '--uid-mappings'
        '--version-file'
        '--version-file-persist'
        '--help'
        '--version'
  )
  _describe 'global options' opts

  return
}

compdef _cli_zsh_autocomplete crio
