#compdef cargo-shuttle

autoload -U is-at-least

_cargo-shuttle() {
    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[@]}" \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
":: :_cargo-shuttle_commands" \
"*::: :->cargo-shuttle" \
&& ret=0
    case $state in
    (cargo-shuttle)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-command-$line[1]:"
        case $line[1] in
            (init)
_arguments "${_arguments_options[@]}" \
'(--from --subfolder)-t+[Clone a starter template from Shuttle'\''s official examples]:TEMPLATE:((actix-web\:"Actix Web framework"
axum\:"Axum web framework"
loco\:"Loco web framework"
poem\:"Poem web framework"
poise\:"Poise Discord framework"
rocket\:"Rocket web framework"
salvo\:"Salvo web framework"
serenity\:"Serenity Discord framework"
thruster\:"Thruster web framework"
tide\:"Tide web framework"
tower\:"Tower web framework"
warp\:"Warp web framework"
none\:"No template - Custom empty service"))' \
'(--from --subfolder)--template=[Clone a starter template from Shuttle'\''s official examples]:TEMPLATE:((actix-web\:"Actix Web framework"
axum\:"Axum web framework"
loco\:"Loco web framework"
poem\:"Poem web framework"
poise\:"Poise Discord framework"
rocket\:"Rocket web framework"
salvo\:"Salvo web framework"
serenity\:"Serenity Discord framework"
thruster\:"Thruster web framework"
tide\:"Tide web framework"
tower\:"Tower web framework"
warp\:"Warp web framework"
none\:"No template - Custom empty service"))' \
'--from=[Clone a template from a git repository or local path using cargo-generate]:FROM: ' \
'--subfolder=[Path to the template in the source (used with --from)]:SUBFOLDER: ' \
'--api-key=[API key for the Shuttle platform]:API_KEY: ' \
'--force-name[Don'\''t check the project name'\''s validity or availability and use it anyways]' \
'--create-env[Whether to start the container for this project on Shuttle, and claim the project name]' \
'--no-git[Don'\''t initialize a new git repository]' \
'-h[Print help (see more with '\''--help'\'')]' \
'--help[Print help (see more with '\''--help'\'')]' \
'::path -- Path where to place the new Shuttle project:_files' \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" \
'-p+[Port to start service on]:PORT: ' \
'--port=[Port to start service on]:PORT: ' \
'--external[Use 0.0.0.0 instead of localhost (for usage with local external devices)]' \
'-r[Use release mode for building the project]' \
'--release[Use release mode for building the project]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(deploy)
_arguments "${_arguments_options[@]}" \
'--allow-dirty[Allow deployment with uncommitted files]' \
'--ad[Allow deployment with uncommitted files]' \
'--no-test[Don'\''t run pre-deploy tests]' \
'--nt[Don'\''t run pre-deploy tests]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(deployment)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
":: :_cargo-shuttle__deployment_commands" \
"*::: :->deployment" \
&& ret=0

    case $state in
    (deployment)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-deployment-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
'--page=[Which page to display]:PAGE: ' \
'--limit=[How many projects per page to display]:LIMIT: ' \
'--raw[Output table in \`raw\` format]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(status)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
':id -- ID of deployment to get status for:' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__deployment__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-deployment-help-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(status)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(status)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(logs)
_arguments "${_arguments_options[@]}" \
'-l[View logs from the most recent deployment (which is not always the latest running one)]' \
'--latest[View logs from the most recent deployment (which is not always the latest running one)]' \
'-f[Follow log output]' \
'--follow[Follow log output]' \
'--raw[Don'\''t display timestamps and log origin tags]' \
'-h[Print help]' \
'--help[Print help]' \
'::id -- Deployment ID to get logs for. Defaults to currently running deployment:' \
&& ret=0
;;
(project)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
":: :_cargo-shuttle__project_commands" \
"*::: :->project" \
&& ret=0

    case $state in
    (project)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-project-command-$line[1]:"
        case $line[1] in
            (start)
_arguments "${_arguments_options[@]}" \
'--idle-minutes=[How long to wait before putting the project in an idle state due to inactivity. 0 means the project will never idle]:IDLE_MINUTES: ' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(status)
_arguments "${_arguments_options[@]}" \
'-f[Follow status of project command]' \
'--follow[Follow status of project command]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(restart)
_arguments "${_arguments_options[@]}" \
'--idle-minutes=[How long to wait before putting the project in an idle state due to inactivity. 0 means the project will never idle]:IDLE_MINUTES: ' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
'--page=[Which page to display]:PAGE: ' \
'--limit=[How many projects per page to display]:LIMIT: ' \
'--raw[Output table in \`raw\` format]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" \
'-y[Skip confirmations and proceed]' \
'--yes[Skip confirmations and proceed]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__project__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-project-help-command-$line[1]:"
        case $line[1] in
            (start)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(status)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(restart)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(resource)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
":: :_cargo-shuttle__resource_commands" \
"*::: :->resource" \
&& ret=0

    case $state in
    (resource)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-resource-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
'--raw[Output table in \`raw\` format]' \
'--show-secrets[Show secrets from resources (e.g. a password in a connection string)]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" \
'-y[Skip confirmations and proceed]' \
'--yes[Skip confirmations and proceed]' \
'-h[Print help]' \
'--help[Print help]' \
':resource_type -- Type of the resource to delete. Use the string in the '\''Type'\'' column as displayed in the `resource list` command. For example, '\''database\:\:shared\:\:postgres'\'':' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__resource__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-resource-help-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(clean)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(login)
_arguments "${_arguments_options[@]}" \
'--api-key=[API key for the Shuttle platform]:API_KEY: ' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(logout)
_arguments "${_arguments_options[@]}" \
'--reset-api-key[Reset the API key before logging out]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(generate)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
":: :_cargo-shuttle__generate_commands" \
"*::: :->generate" \
&& ret=0

    case $state in
    (generate)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-generate-command-$line[1]:"
        case $line[1] in
            (shell)
_arguments "${_arguments_options[@]}" \
'-o+[Output to a file (stdout by default)]:OUTPUT:_files' \
'--output=[Output to a file (stdout by default)]:OUTPUT:_files' \
'-h[Print help]' \
'--help[Print help]' \
':shell -- The shell to generate shell completion for:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(manpage)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__generate__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-generate-help-command-$line[1]:"
        case $line[1] in
            (shell)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(manpage)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
;;
(feedback)
_arguments "${_arguments_options[@]}" \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__help_commands" \
"*::: :->help" \
&& ret=0

    case $state in
    (help)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-help-command-$line[1]:"
        case $line[1] in
            (init)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(run)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(deploy)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(deployment)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__help__deployment_commands" \
"*::: :->deployment" \
&& ret=0

    case $state in
    (deployment)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-help-deployment-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(status)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(status)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(logs)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(project)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__help__project_commands" \
"*::: :->project" \
&& ret=0

    case $state in
    (project)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-help-project-command-$line[1]:"
        case $line[1] in
            (start)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(status)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(stop)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(restart)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(resource)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__help__resource_commands" \
"*::: :->resource" \
&& ret=0

    case $state in
    (resource)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-help-resource-command-$line[1]:"
        case $line[1] in
            (list)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(delete)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(clean)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(login)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(logout)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(generate)
_arguments "${_arguments_options[@]}" \
":: :_cargo-shuttle__help__generate_commands" \
"*::: :->generate" \
&& ret=0

    case $state in
    (generate)
        words=($line[1] "${words[@]}")
        (( CURRENT += 1 ))
        curcontext="${curcontext%:*:*}:cargo-shuttle-help-generate-command-$line[1]:"
        case $line[1] in
            (shell)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(manpage)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
(feedback)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" \
&& ret=0
;;
        esac
    ;;
esac
;;
        esac
    ;;
esac
}

(( $+functions[_cargo-shuttle_commands] )) ||
_cargo-shuttle_commands() {
    local commands; commands=(
'init:Create a new Shuttle project' \
'run:Run a Shuttle service locally' \
'deploy:Deploy a Shuttle service' \
'deployment:Manage deployments of a Shuttle service' \
'status:View the status of a Shuttle service' \
'stop:Stop this Shuttle service' \
'logs:View the logs of a deployment in this Shuttle service' \
'project:List or manage projects on Shuttle' \
'resource:Manage resources of a Shuttle project' \
'clean:Remove cargo build artifacts in the Shuttle environment' \
'login:Login to the Shuttle platform' \
'logout:Log out of the Shuttle platform' \
'generate:Generate shell completions and man page' \
'feedback:Open an issue on GitHub and provide feedback' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle commands' commands "$@"
}
(( $+functions[_cargo-shuttle__clean_commands] )) ||
_cargo-shuttle__clean_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle clean commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__clean_commands] )) ||
_cargo-shuttle__help__clean_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help clean commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__project__delete_commands] )) ||
_cargo-shuttle__help__project__delete_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help project delete commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__resource__delete_commands] )) ||
_cargo-shuttle__help__resource__delete_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help resource delete commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__delete_commands] )) ||
_cargo-shuttle__project__delete_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project delete commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help__delete_commands] )) ||
_cargo-shuttle__project__help__delete_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project help delete commands' commands "$@"
}
(( $+functions[_cargo-shuttle__resource__delete_commands] )) ||
_cargo-shuttle__resource__delete_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle resource delete commands' commands "$@"
}
(( $+functions[_cargo-shuttle__resource__help__delete_commands] )) ||
_cargo-shuttle__resource__help__delete_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle resource help delete commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deploy_commands] )) ||
_cargo-shuttle__deploy_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle deploy commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__deploy_commands] )) ||
_cargo-shuttle__help__deploy_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help deploy commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deployment_commands] )) ||
_cargo-shuttle__deployment_commands() {
    local commands; commands=(
'list:List all the deployments for a service' \
'status:View status of a deployment' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle deployment commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__deployment_commands] )) ||
_cargo-shuttle__help__deployment_commands() {
    local commands; commands=(
'list:List all the deployments for a service' \
'status:View status of a deployment' \
    )
    _describe -t commands 'cargo-shuttle help deployment commands' commands "$@"
}
(( $+functions[_cargo-shuttle__feedback_commands] )) ||
_cargo-shuttle__feedback_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle feedback commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__feedback_commands] )) ||
_cargo-shuttle__help__feedback_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help feedback commands' commands "$@"
}
(( $+functions[_cargo-shuttle__generate_commands] )) ||
_cargo-shuttle__generate_commands() {
    local commands; commands=(
'shell:Generate shell completions' \
'manpage:Generate man page to the standard output' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle generate commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__generate_commands] )) ||
_cargo-shuttle__help__generate_commands() {
    local commands; commands=(
'shell:Generate shell completions' \
'manpage:Generate man page to the standard output' \
    )
    _describe -t commands 'cargo-shuttle help generate commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deployment__help_commands] )) ||
_cargo-shuttle__deployment__help_commands() {
    local commands; commands=(
'list:List all the deployments for a service' \
'status:View status of a deployment' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle deployment help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deployment__help__help_commands] )) ||
_cargo-shuttle__deployment__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle deployment help help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__generate__help_commands] )) ||
_cargo-shuttle__generate__help_commands() {
    local commands; commands=(
'shell:Generate shell completions' \
'manpage:Generate man page to the standard output' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle generate help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__generate__help__help_commands] )) ||
_cargo-shuttle__generate__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle generate help help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help_commands] )) ||
_cargo-shuttle__help_commands() {
    local commands; commands=(
'init:Create a new Shuttle project' \
'run:Run a Shuttle service locally' \
'deploy:Deploy a Shuttle service' \
'deployment:Manage deployments of a Shuttle service' \
'status:View the status of a Shuttle service' \
'stop:Stop this Shuttle service' \
'logs:View the logs of a deployment in this Shuttle service' \
'project:List or manage projects on Shuttle' \
'resource:Manage resources of a Shuttle project' \
'clean:Remove cargo build artifacts in the Shuttle environment' \
'login:Login to the Shuttle platform' \
'logout:Log out of the Shuttle platform' \
'generate:Generate shell completions and man page' \
'feedback:Open an issue on GitHub and provide feedback' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__help_commands] )) ||
_cargo-shuttle__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help_commands] )) ||
_cargo-shuttle__project__help_commands() {
    local commands; commands=(
'start:Create an environment for this project on Shuttle' \
'status:Check the status of this project'\''s environment on Shuttle' \
'stop:Destroy this project'\''s environment (container) on Shuttle' \
'restart:Destroy and create an environment for this project on Shuttle' \
'list:List all projects belonging to the calling account' \
'delete:Delete a project and all linked data' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle project help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help__help_commands] )) ||
_cargo-shuttle__project__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project help help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__resource__help_commands] )) ||
_cargo-shuttle__resource__help_commands() {
    local commands; commands=(
'list:List all the resources for a project' \
'delete:Delete a resource' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle resource help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__resource__help__help_commands] )) ||
_cargo-shuttle__resource__help__help_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle resource help help commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__init_commands] )) ||
_cargo-shuttle__help__init_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help init commands' commands "$@"
}
(( $+functions[_cargo-shuttle__init_commands] )) ||
_cargo-shuttle__init_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle init commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deployment__help__list_commands] )) ||
_cargo-shuttle__deployment__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle deployment help list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deployment__list_commands] )) ||
_cargo-shuttle__deployment__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle deployment list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__deployment__list_commands] )) ||
_cargo-shuttle__help__deployment__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help deployment list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__project__list_commands] )) ||
_cargo-shuttle__help__project__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help project list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__resource__list_commands] )) ||
_cargo-shuttle__help__resource__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help resource list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help__list_commands] )) ||
_cargo-shuttle__project__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project help list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__list_commands] )) ||
_cargo-shuttle__project__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__resource__help__list_commands] )) ||
_cargo-shuttle__resource__help__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle resource help list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__resource__list_commands] )) ||
_cargo-shuttle__resource__list_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle resource list commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__login_commands] )) ||
_cargo-shuttle__help__login_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help login commands' commands "$@"
}
(( $+functions[_cargo-shuttle__login_commands] )) ||
_cargo-shuttle__login_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle login commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__logout_commands] )) ||
_cargo-shuttle__help__logout_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help logout commands' commands "$@"
}
(( $+functions[_cargo-shuttle__logout_commands] )) ||
_cargo-shuttle__logout_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle logout commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__logs_commands] )) ||
_cargo-shuttle__help__logs_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help logs commands' commands "$@"
}
(( $+functions[_cargo-shuttle__logs_commands] )) ||
_cargo-shuttle__logs_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle logs commands' commands "$@"
}
(( $+functions[_cargo-shuttle__generate__help__manpage_commands] )) ||
_cargo-shuttle__generate__help__manpage_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle generate help manpage commands' commands "$@"
}
(( $+functions[_cargo-shuttle__generate__manpage_commands] )) ||
_cargo-shuttle__generate__manpage_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle generate manpage commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__generate__manpage_commands] )) ||
_cargo-shuttle__help__generate__manpage_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help generate manpage commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__project_commands] )) ||
_cargo-shuttle__help__project_commands() {
    local commands; commands=(
'start:Create an environment for this project on Shuttle' \
'status:Check the status of this project'\''s environment on Shuttle' \
'stop:Destroy this project'\''s environment (container) on Shuttle' \
'restart:Destroy and create an environment for this project on Shuttle' \
'list:List all projects belonging to the calling account' \
'delete:Delete a project and all linked data' \
    )
    _describe -t commands 'cargo-shuttle help project commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project_commands] )) ||
_cargo-shuttle__project_commands() {
    local commands; commands=(
'start:Create an environment for this project on Shuttle' \
'status:Check the status of this project'\''s environment on Shuttle' \
'stop:Destroy this project'\''s environment (container) on Shuttle' \
'restart:Destroy and create an environment for this project on Shuttle' \
'list:List all projects belonging to the calling account' \
'delete:Delete a project and all linked data' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle project commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__resource_commands] )) ||
_cargo-shuttle__help__resource_commands() {
    local commands; commands=(
'list:List all the resources for a project' \
'delete:Delete a resource' \
    )
    _describe -t commands 'cargo-shuttle help resource commands' commands "$@"
}
(( $+functions[_cargo-shuttle__resource_commands] )) ||
_cargo-shuttle__resource_commands() {
    local commands; commands=(
'list:List all the resources for a project' \
'delete:Delete a resource' \
'help:Print this message or the help of the given subcommand(s)' \
    )
    _describe -t commands 'cargo-shuttle resource commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__project__restart_commands] )) ||
_cargo-shuttle__help__project__restart_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help project restart commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help__restart_commands] )) ||
_cargo-shuttle__project__help__restart_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project help restart commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__restart_commands] )) ||
_cargo-shuttle__project__restart_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project restart commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__run_commands] )) ||
_cargo-shuttle__help__run_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help run commands' commands "$@"
}
(( $+functions[_cargo-shuttle__run_commands] )) ||
_cargo-shuttle__run_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle run commands' commands "$@"
}
(( $+functions[_cargo-shuttle__generate__help__shell_commands] )) ||
_cargo-shuttle__generate__help__shell_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle generate help shell commands' commands "$@"
}
(( $+functions[_cargo-shuttle__generate__shell_commands] )) ||
_cargo-shuttle__generate__shell_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle generate shell commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__generate__shell_commands] )) ||
_cargo-shuttle__help__generate__shell_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help generate shell commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__project__start_commands] )) ||
_cargo-shuttle__help__project__start_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help project start commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help__start_commands] )) ||
_cargo-shuttle__project__help__start_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project help start commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__start_commands] )) ||
_cargo-shuttle__project__start_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project start commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deployment__help__status_commands] )) ||
_cargo-shuttle__deployment__help__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle deployment help status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__deployment__status_commands] )) ||
_cargo-shuttle__deployment__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle deployment status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__deployment__status_commands] )) ||
_cargo-shuttle__help__deployment__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help deployment status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__project__status_commands] )) ||
_cargo-shuttle__help__project__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help project status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__status_commands] )) ||
_cargo-shuttle__help__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help__status_commands] )) ||
_cargo-shuttle__project__help__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project help status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__status_commands] )) ||
_cargo-shuttle__project__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__status_commands] )) ||
_cargo-shuttle__status_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle status commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__project__stop_commands] )) ||
_cargo-shuttle__help__project__stop_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help project stop commands' commands "$@"
}
(( $+functions[_cargo-shuttle__help__stop_commands] )) ||
_cargo-shuttle__help__stop_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle help stop commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__help__stop_commands] )) ||
_cargo-shuttle__project__help__stop_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project help stop commands' commands "$@"
}
(( $+functions[_cargo-shuttle__project__stop_commands] )) ||
_cargo-shuttle__project__stop_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle project stop commands' commands "$@"
}
(( $+functions[_cargo-shuttle__stop_commands] )) ||
_cargo-shuttle__stop_commands() {
    local commands; commands=()
    _describe -t commands 'cargo-shuttle stop commands' commands "$@"
}

if [ "$funcstack[1]" = "_cargo-shuttle" ]; then
    _cargo-shuttle "$@"
else
    compdef _cargo-shuttle cargo-shuttle
fi
