#compdef solo2

autoload -U is-at-least

_solo2() {
    typeset -A opt_args
    typeset -a _arguments_options
    local ret=1

    if is-at-least 5.2; then
        _arguments_options=(-s -S -C)
    else
        _arguments_options=(-s -C)
    fi

    local context curcontext="$curcontext" state line
    _arguments "${_arguments_options[@]}" \
'-u+[Specify a 16 byte UUID for a Solo 2 / Trussed compatible device to connect to.]' \
'--uuid=[Specify a 16 byte UUID for a Solo 2 / Trussed compatible device to connect to.]' \
'-h[Prints help information. Use --help for more details.]' \
'--help[Prints help information. Use --help for more details.]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2_commands" \
"*::: :->solo2" \
&& ret=0
    case $state in
    (solo2)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-command-$line[1]:"
        case $line[1] in
            (app)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__app_commands" \
"*::: :->app" \
&& ret=0
case $state in
    (app)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-app-command-$line[1]:"
        case $line[1] in
            (admin)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__app__admin_commands" \
"*::: :->admin" \
&& ret=0
case $state in
    (admin)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-app-admin-command-$line[1]:"
        case $line[1] in
            (aid)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(reboot)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(boot-to-bootrom)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(uuid)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(version)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(ndef)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__app__ndef_commands" \
"*::: :->ndef" \
&& ret=0
case $state in
    (ndef)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-app-ndef-command-$line[1]:"
        case $line[1] in
            (aid)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(capabilities)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(data)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(provisioner)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__app__provisioner_commands" \
"*::: :->provisioner" \
&& ret=0
case $state in
    (provisioner)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-app-provisioner-command-$line[1]:"
        case $line[1] in
            (aid)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(generate-ed255-key)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(generate-p256-key)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(generate-x255-key)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(store-ed255-cert)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
':DER -- Certificate in DER format:_files' \
&& ret=0
;;
(store-p256-cert)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
':DER -- Certificate in DER format:_files' \
&& ret=0
;;
(store-x255-cert)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
':DER -- Certificate in DER format:_files' \
&& ret=0
;;
(store-t1-pubkey)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
':BYTES -- Ed255 public key (raw, 32B):_files' \
&& ret=0
;;
(reformat-filesystem)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(boot-to-bootrom)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(uuid)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(write-file)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
':DATA -- binary data file:_files' \
':PATH -- path in internal filesystem:_files' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(piv)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__app__piv_commands" \
"*::: :->piv" \
&& ret=0
case $state in
    (piv)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-app-piv-command-$line[1]:"
        case $line[1] in
            (aid)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(tester)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__app__tester_commands" \
"*::: :->tester" \
&& ret=0
case $state in
    (tester)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-app-tester-command-$line[1]:"
        case $line[1] in
            (aid)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(dev-pki)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__dev-pki_commands" \
"*::: :->dev-pki" \
&& ret=0
case $state in
    (dev-pki)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-dev-pki-command-$line[1]:"
        case $line[1] in
            (fido)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
':KEY -- output file, for private P256 key in binary format:_files' \
':CERT -- output file, for self-signed certificate in DER format:_files' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(provision)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
':CONFIG -- Configuration file containing settings:_files' \
&& ret=0
;;
(bootloader)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
":: :_solo2__bootloader_commands" \
"*::: :->bootloader" \
&& ret=0
case $state in
    (bootloader)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:solo2-bootloader-command-$line[1]:"
        case $line[1] in
            (reboot)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
;;
(ls)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
(update)
_arguments "${_arguments_options[@]}" \
'-y[Proceed with major updates without prompt.]' \
'--yes[Proceed with major updates without prompt.]' \
'-a[Update all connect Solo devices.]' \
'--all[Update all connect Solo devices.]' \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
'::FIRMWARE -- Update to a specific firmware secure boot file (.sb2).:_files' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
'-h[Prints help information]' \
'--help[Prints help information]' \
'-V[Prints version information]' \
'--version[Prints version information]' \
&& ret=0
;;
        esac
    ;;
esac
}

(( $+functions[_solo2_commands] )) ||
_solo2_commands() {
    local commands; commands=(
        "app:app interactions" \
"dev-pki:PKI for development" \
"provision:Runs a sequence of bootloader commands defined in the config file." \
"bootloader:Interact with bootloader" \
"list:List all device candidates." \
"ls:List all device candidates." \
"update:Update to latest firmware published by SoloKeys. Warns on Major updates." \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 commands' commands "$@"
}
(( $+functions[_solo2__app__admin_commands] )) ||
_solo2__app__admin_commands() {
    local commands; commands=(
        "aid:Prints the application's AID" \
"reboot:Reboots device to regular mode" \
"boot-to-bootrom:Reboots device to bootloader mode" \
"uuid:UUID (serial number)" \
"version:version" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 app admin commands' commands "$@"
}
(( $+functions[_solo2__app__admin__aid_commands] )) ||
_solo2__app__admin__aid_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app admin aid commands' commands "$@"
}
(( $+functions[_solo2__app__ndef__aid_commands] )) ||
_solo2__app__ndef__aid_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app ndef aid commands' commands "$@"
}
(( $+functions[_solo2__app__piv__aid_commands] )) ||
_solo2__app__piv__aid_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app piv aid commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__aid_commands] )) ||
_solo2__app__provisioner__aid_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner aid commands' commands "$@"
}
(( $+functions[_solo2__app__tester__aid_commands] )) ||
_solo2__app__tester__aid_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app tester aid commands' commands "$@"
}
(( $+functions[_solo2__app_commands] )) ||
_solo2__app_commands() {
    local commands; commands=(
        "admin:admin app" \
"ndef:NDEF app" \
"provisioner:Provisioner app" \
"piv:PIV (personal identity verification) app" \
"tester:Tester app" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 app commands' commands "$@"
}
(( $+functions[_solo2__app__admin__boot-to-bootrom_commands] )) ||
_solo2__app__admin__boot-to-bootrom_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app admin boot-to-bootrom commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__boot-to-bootrom_commands] )) ||
_solo2__app__provisioner__boot-to-bootrom_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner boot-to-bootrom commands' commands "$@"
}
(( $+functions[_solo2__bootloader_commands] )) ||
_solo2__bootloader_commands() {
    local commands; commands=(
        "reboot:Reboots (into device if firmware is valid)" \
"list:Lists all available bootloaders" \
"ls:Lists all available bootloaders" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 bootloader commands' commands "$@"
}
(( $+functions[_solo2__app__ndef__capabilities_commands] )) ||
_solo2__app__ndef__capabilities_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app ndef capabilities commands' commands "$@"
}
(( $+functions[_solo2__app__ndef__data_commands] )) ||
_solo2__app__ndef__data_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app ndef data commands' commands "$@"
}
(( $+functions[_solo2__dev-pki_commands] )) ||
_solo2__dev-pki_commands() {
    local commands; commands=(
        "fido:Generates a self-signed FIDO batch attestation cert+key" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 dev-pki commands' commands "$@"
}
(( $+functions[_solo2__dev-pki__fido_commands] )) ||
_solo2__dev-pki__fido_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 dev-pki fido commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__generate-ed255-key_commands] )) ||
_solo2__app__provisioner__generate-ed255-key_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner generate-ed255-key commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__generate-p256-key_commands] )) ||
_solo2__app__provisioner__generate-p256-key_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner generate-p256-key commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__generate-x255-key_commands] )) ||
_solo2__app__provisioner__generate-x255-key_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner generate-x255-key commands' commands "$@"
}
(( $+functions[_solo2__app__admin__help_commands] )) ||
_solo2__app__admin__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app admin help commands' commands "$@"
}
(( $+functions[_solo2__app__help_commands] )) ||
_solo2__app__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app help commands' commands "$@"
}
(( $+functions[_solo2__app__ndef__help_commands] )) ||
_solo2__app__ndef__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app ndef help commands' commands "$@"
}
(( $+functions[_solo2__app__piv__help_commands] )) ||
_solo2__app__piv__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app piv help commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__help_commands] )) ||
_solo2__app__provisioner__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner help commands' commands "$@"
}
(( $+functions[_solo2__app__tester__help_commands] )) ||
_solo2__app__tester__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app tester help commands' commands "$@"
}
(( $+functions[_solo2__bootloader__help_commands] )) ||
_solo2__bootloader__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 bootloader help commands' commands "$@"
}
(( $+functions[_solo2__dev-pki__help_commands] )) ||
_solo2__dev-pki__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 dev-pki help commands' commands "$@"
}
(( $+functions[_solo2__help_commands] )) ||
_solo2__help_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 help commands' commands "$@"
}
(( $+functions[_solo2__bootloader__list_commands] )) ||
_solo2__bootloader__list_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 bootloader list commands' commands "$@"
}
(( $+functions[_solo2__list_commands] )) ||
_solo2__list_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 list commands' commands "$@"
}
(( $+functions[_ls_commands] )) ||
_ls_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'ls commands' commands "$@"
}
(( $+functions[_solo2__bootloader__ls_commands] )) ||
_solo2__bootloader__ls_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 bootloader ls commands' commands "$@"
}
(( $+functions[_solo2__ls_commands] )) ||
_solo2__ls_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 ls commands' commands "$@"
}
(( $+functions[_solo2__app__ndef_commands] )) ||
_solo2__app__ndef_commands() {
    local commands; commands=(
        "aid:Prints the application's AID" \
"capabilities:NDEF capabilities" \
"data:NDEF data" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 app ndef commands' commands "$@"
}
(( $+functions[_solo2__app__piv_commands] )) ||
_solo2__app__piv_commands() {
    local commands; commands=(
        "aid:Prints the application's AID" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 app piv commands' commands "$@"
}
(( $+functions[_solo2__provision_commands] )) ||
_solo2__provision_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 provision commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner_commands] )) ||
_solo2__app__provisioner_commands() {
    local commands; commands=(
        "aid:Prints the application's AID" \
"generate-ed255-key:Generates a new Trussed Ed255 attestation key" \
"generate-p256-key:Generates a new Trussed P256 attestation key" \
"generate-x255-key:Generates a new Trussed X255 agreement key" \
"store-ed255-cert:Stores a Trussed Ed255 attestation certificate" \
"store-p256-cert:Stores a Trussed P256 attestation certificate" \
"store-x255-cert:Stores a Trussed X255 attestation certificate" \
"store-t1-pubkey:Stores the Trussed T1 intermediate public key" \
"reformat-filesystem:Reformats the internal filesystem" \
"boot-to-bootrom:Boot to ROM bootloader" \
"uuid:UUID (serial number)" \
"write-file:Writes binary file to specified path" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 app provisioner commands' commands "$@"
}
(( $+functions[_solo2__app__admin__reboot_commands] )) ||
_solo2__app__admin__reboot_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app admin reboot commands' commands "$@"
}
(( $+functions[_solo2__bootloader__reboot_commands] )) ||
_solo2__bootloader__reboot_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 bootloader reboot commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__reformat-filesystem_commands] )) ||
_solo2__app__provisioner__reformat-filesystem_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner reformat-filesystem commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__store-ed255-cert_commands] )) ||
_solo2__app__provisioner__store-ed255-cert_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner store-ed255-cert commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__store-p256-cert_commands] )) ||
_solo2__app__provisioner__store-p256-cert_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner store-p256-cert commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__store-t1-pubkey_commands] )) ||
_solo2__app__provisioner__store-t1-pubkey_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner store-t1-pubkey commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__store-x255-cert_commands] )) ||
_solo2__app__provisioner__store-x255-cert_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner store-x255-cert commands' commands "$@"
}
(( $+functions[_solo2__app__tester_commands] )) ||
_solo2__app__tester_commands() {
    local commands; commands=(
        "aid:Prints the application's AID" \
"help:Prints this message or the help of the given subcommand(s)" \
    )
    _describe -t commands 'solo2 app tester commands' commands "$@"
}
(( $+functions[_solo2__update_commands] )) ||
_solo2__update_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 update commands' commands "$@"
}
(( $+functions[_solo2__app__admin__uuid_commands] )) ||
_solo2__app__admin__uuid_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app admin uuid commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__uuid_commands] )) ||
_solo2__app__provisioner__uuid_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner uuid commands' commands "$@"
}
(( $+functions[_solo2__app__admin__version_commands] )) ||
_solo2__app__admin__version_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app admin version commands' commands "$@"
}
(( $+functions[_solo2__app__provisioner__write-file_commands] )) ||
_solo2__app__provisioner__write-file_commands() {
    local commands; commands=(
        
    )
    _describe -t commands 'solo2 app provisioner write-file commands' commands "$@"
}

_solo2 "$@"