_plesk_bin_cli()
{
    local cur prev
    COMPREPLY=()

    cur=${COMP_WORDS[COMP_CWORD]}
    prev=${COMP_WORDS[COMP_CWORD-1]}


    if [ $COMP_CWORD -eq 2 ]; then
            COMPREPLY=( $( compgen -W "event_handler turboaddr optimization_settings cloning branding_theme pleskbackup reseller_service_plan webstat task-manager aps autoresponder notification subdomain database-server service_node webuser branding anonftp http2_pref license service role scheduled-backup apache keyinfo service_plan_addon secret_key passwords traffic customer ip_pool locales mail backup-storage action-log poweruser ftpsubaccount php_handler user php_settings domain dns domain_template reseller_pref crontab_shell product_info reseller_template settings subscription_settings client nginx reseller_plan domalias init_conf domain_addon_service_plan extension client_pref custom_plan_items certificate server_dns ip_ban reseller domain_pref server_pref grey_listing admin admin_alias site hotlink_protection http3_pref interface_template ipmanage scheduler database subscription protdir domain_restriction service_plan repair panel_gui maillist virtdir" -- $cur ) )
            return 0
    elif [ $COMP_CWORD -eq 3 ]; then
        case "$prev" in
            event_handler)
                COMPREPLY=( $( compgen -W "--create --update --delete --list --list-events --list-users --help" -- $cur ) )
                return 0
                ;;
            turboaddr)
                COMPREPLY=( $( compgen -W "--create --update --remove --help" -- $cur ) )
                return 0
                ;;
            optimization_settings)
                COMPREPLY=( $( compgen -W "--enable-module --disable-module --status --set-mpm --get-mpm --listen-on-localhost --help" -- $cur ) )
                return 0
                ;;
            cloning)
                COMPREPLY=( $( compgen -W "--update --info --status --help" -- $cur ) )
                return 0
                ;;
            branding_theme)
                COMPREPLY=( $( compgen -W "--install --uninstall --set --list --pack --help" -- $cur ) )
                return 0
                ;;
            pleskbackup)
                COMPREPLY=( $( compgen -W "--server --resellers-name --resellers-id --clients-name --clients-id --domains-name --domains-id --help" -- $cur ) )
                return 0
                ;;
            reseller_service_plan)
                COMPREPLY=( $( compgen -W "--create --update --duplicate --remove --xml-info --help --create-default" -- $cur ) )
                return 0
                ;;
            webstat)
                COMPREPLY=( $( compgen -W "--add --remove --list --del-all --help" -- $cur ) )
                return 0
                ;;
            task-manager)
                COMPREPLY=( $( compgen -W "--list --info --stop --help" -- $cur ) )
                return 0
                ;;
            aps)
                COMPREPLY=( $( compgen -W "--import-package --download --get-download-status --import-config --get-packages-list --install --update-package --get-install-settings-template --clear-cache --help" -- $cur ) )
                return 0
                ;;
            autoresponder)
                COMPREPLY=( $( compgen -W "--update --info --help" -- $cur ) )
                return 0
                ;;
            notification)
                COMPREPLY=( $( compgen -W "--list --update --expiration --help" -- $cur ) )
                return 0
                ;;
            subdomain)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --suspend --help --list" -- $cur ) )
                return 0
                ;;
            database-server)
                COMPREPLY=( $( compgen -W "--create-server --update-server --remove-server --set-default-server --set-default-server-local --list --xml-info --help" -- $cur ) )
                return 0
                ;;
            service_node)
                COMPREPLY=( $( compgen -W "--add --update --list --register-ip --help" -- $cur ) )
                return 0
                ;;
            webuser)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --help" -- $cur ) )
                return 0
                ;;
            branding)
                COMPREPLY=( $( compgen -W "--custom-title --reset-title --custom-logo --reset-logo --set-custom-background --reset-custom-background --show --help" -- $cur ) )
                return 0
                ;;
            anonftp)
                COMPREPLY=( $( compgen -W "--update --info --help" -- $cur ) )
                return 0
                ;;
            http2_pref)
                COMPREPLY=( $( compgen -W "--enable --disable --status --help" -- $cur ) )
                return 0
                ;;
            license)
                COMPREPLY=( $( compgen -W "--install --check-installed-license --retrieve --help" -- $cur ) )
                return 0
                ;;
            service)
                COMPREPLY=( $( compgen -W "--start --stop --restart --status --list --help" -- $cur ) )
                return 0
                ;;
            role)
                COMPREPLY=( $( compgen -W "--create --update --info --delete --list-sp --update-sp --help" -- $cur ) )
                return 0
                ;;
            scheduled-backup)
                COMPREPLY=( $( compgen -W "--enable --disable --configure --run --list --help" -- $cur ) )
                return 0
                ;;
            apache)
                COMPREPLY=( $( compgen -W "--enable-module --disable-module --status --set-mpm --get-mpm --listen-on-localhost --help" -- $cur ) )
                return 0
                ;;
            keyinfo)
                COMPREPLY=( $( compgen -W "--info --list --test-key --help" -- $cur ) )
                return 0
                ;;
            service_plan_addon)
                COMPREPLY=( $( compgen -W "--create --update --duplicate --remove --xml-info --info --help" -- $cur ) )
                return 0
                ;;
            secret_key)
                COMPREPLY=( $( compgen -W "--create --list --delete --help" -- $cur ) )
                return 0
                ;;
            passwords)
                COMPREPLY=( $( compgen -W "--encrypt --status --help" -- $cur ) )
                return 0
                ;;
            traffic)
                COMPREPLY=( $( compgen -W "--add --add-user --sub --sub-user --add-batch --add-batch-user --del --del-user --help" -- $cur ) )
                return 0
                ;;
            customer)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --on --off --help --list --convert-to-reseller --change-owner --add-aps-filter-item --remove-aps-filter-item --disable-aps-filter --enable-aps-filter --show-aps-filter-info" -- $cur ) )
                return 0
                ;;
            ip_pool)
                COMPREPLY=( $( compgen -W "--add --add-list --update --remove --help" -- $cur ) )
                return 0
                ;;
            locales)
                COMPREPLY=( $( compgen -W "--set-default --enable --disable --list --status --help" -- $cur ) )
                return 0
                ;;
            mail)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --on --off --create-service --remove-service --update-service --rename --list --help --clear-mailbox" -- $cur ) )
                return 0
                ;;
            backup-storage)
                COMPREPLY=( $( compgen -W "--enable --disable --configure --list-backups --enable-password-protection --disable-password-protection --help" -- $cur ) )
                return 0
                ;;
            action-log)
                COMPREPLY=( $( compgen -W "--show --info --update --help" -- $cur ) )
                return 0
                ;;
            poweruser)
                COMPREPLY=( $( compgen -W "--on --off --set --help" -- $cur ) )
                return 0
                ;;
            ftpsubaccount)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --help" -- $cur ) )
                return 0
                ;;
            php_handler)
                COMPREPLY=( $( compgen -W "--add --update --replace --remove --enable --disable --get-usage --list --reread --help --extension-list --extension-enable --extension-disable --extension-uninstall --extension-install --extension-list-installable" -- $cur ) )
                return 0
                ;;
            user)
                COMPREPLY=( $( compgen -W "--create --update --info --delete --help" -- $cur ) )
                return 0
                ;;
            php_settings)
                COMPREPLY=( $( compgen -W "--update-all --help" -- $cur ) )
                return 0
                ;;
            domain)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --on --suspend --off --webspace-on --webspace-off --lock-subscription --unlock-subscription --no-subscription --switch-subscription --sync-subscription --add-subscription --remove-subscription --change-owner --move --help --list --merge --shells --add-aps-filter-item --remove-aps-filter-item --disable-aps-filter --enable-aps-filter --show-aps-filter-info --add-custom-plan-item --remove-custom-plan-item --remove-all-custom-plan-items --show-custom-plan-items --update-php-settings --show-php-settings --update-web-server-settings --show-web-server-settings --update-web-app-firewall --show-web-app-firewall" -- $cur ) )
                return 0
                ;;
            dns)
                COMPREPLY=( $( compgen -W "--add --set --del --del-all --reset --on --off --set-primary --set-secondary --update-soa --info --help" -- $cur ) )
                return 0
                ;;
            domain_template)
                COMPREPLY=( $( compgen -W "--create --update --duplicate --remove --info --xml-info --help --create-default" -- $cur ) )
                return 0
                ;;
            reseller_pref)
                COMPREPLY=( $( compgen -W "--update --info --skin-list --help" -- $cur ) )
                return 0
                ;;
            crontab_shell)
                COMPREPLY=( $( compgen -W "--update --help" -- $cur ) )
                return 0
                ;;
            product_info)
                COMPREPLY=( $( compgen -W "--get-mode --updates-info --help" -- $cur ) )
                return 0
                ;;
            reseller_template)
                COMPREPLY=( $( compgen -W "--create --update --duplicate --remove --xml-info --help --create-default" -- $cur ) )
                return 0
                ;;
            settings)
                COMPREPLY=( $( compgen -W "--all --get --set --set-from-file --delete --help" -- $cur ) )
                return 0
                ;;
            subscription_settings)
                COMPREPLY=( $( compgen -W "--update --info --set-default --assign-database --show-assigned-database --help --clear-nginx-cache --rescan-tech --update-php-settings --show-php-settings" -- $cur ) )
                return 0
                ;;
            client)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --on --off --help --list --convert-to-reseller --change-owner --add-aps-filter-item --remove-aps-filter-item --disable-aps-filter --enable-aps-filter --show-aps-filter-info" -- $cur ) )
                return 0
                ;;
            nginx)
                COMPREPLY=( $( compgen -W "--enable-module --disable-module --list-modules --help" -- $cur ) )
                return 0
                ;;
            reseller_plan)
                COMPREPLY=( $( compgen -W "--create --update --duplicate --remove --xml-info --help --create-default" -- $cur ) )
                return 0
                ;;
            domalias)
                COMPREPLY=( $( compgen -W "--create --update --delete --delete-all --info --on --off --rename --help" -- $cur ) )
                return 0
                ;;
            init_conf)
                COMPREPLY=( $( compgen -W "--init --update --check-configured --set-admin-password --help" -- $cur ) )
                return 0
                ;;
            domain_addon_service_plan)
                COMPREPLY=( $( compgen -W "--create --update --duplicate --remove --xml-info --info --help" -- $cur ) )
                return 0
                ;;
            extension)
                COMPREPLY=( $( compgen -W "--create --register --install --install-url --upgrade --upgrade-url --uninstall --pack --exec --list --enable --disable --call --help" -- $cur ) )
                return 0
                ;;
            client_pref)
                COMPREPLY=( $( compgen -W "--update --info --skin-list --help" -- $cur ) )
                return 0
                ;;
            custom_plan_items)
                COMPREPLY=( $( compgen -W "--add --update --remove --list --help" -- $cur ) )
                return 0
                ;;
            certificate)
                COMPREPLY=( $( compgen -W "--create --update --remove --assign-cert --list --help" -- $cur ) )
                return 0
                ;;
            server_dns)
                COMPREPLY=( $( compgen -W "--add --set --update-server --update-soa --info --enable-custom-backend --disable-custom-backend --restore-dns-template-zone --help" -- $cur ) )
                return 0
                ;;
            ip_ban)
                COMPREPLY=( $( compgen -W "--enable --disable --update --info --trusted --add-trusted --remove-trusted --update-trusted --banned --ban --unban --jails --enable-jails --disable-jails --help" -- $cur ) )
                return 0
                ;;
            reseller)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --on --off --lock-subscription --unlock-subscription --no-subscription --switch-subscription --sync-subscription --help --convert-to-customer --add-aps-filter-item --remove-aps-filter-item --disable-aps-filter --enable-aps-filter --show-aps-filter-info" -- $cur ) )
                return 0
                ;;
            domain_pref)
                COMPREPLY=( $( compgen -W "--update --info --set-default --assign-database --show-assigned-database --help --clear-nginx-cache --rescan-tech --update-php-settings --show-php-settings" -- $cur ) )
                return 0
                ;;
            server_pref)
                COMPREPLY=( $( compgen -W "--set-default --update --show --locales-list --skins-list --help --load-customizations --update-web-app-firewall --show-web-app-firewall" -- $cur ) )
                return 0
                ;;
            grey_listing)
                COMPREPLY=( $( compgen -W "--update-mailname --update-domain --update-server --info-mailname --info-domain --info-server --help" -- $cur ) )
                return 0
                ;;
            admin)
                COMPREPLY=( $( compgen -W "--update --info --xml-info --set-admin-password --set-password --set-login --help --get-login-link --get-reset-link --send-reset-link --enable-access-domain --disable-access-domain --force-admin-password-reset" -- $cur ) )
                return 0
                ;;
            admin_alias)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --xml-info --list --help" -- $cur ) )
                return 0
                ;;
            site)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --on --suspend --off --move --help --list --update-php-settings --show-php-settings" -- $cur ) )
                return 0
                ;;
            hotlink_protection)
                COMPREPLY=( $( compgen -W "--update --info --help" -- $cur ) )
                return 0
                ;;
            http3_pref)
                COMPREPLY=( $( compgen -W "--enable --disable --status --help" -- $cur ) )
                return 0
                ;;
            interface_template)
                COMPREPLY=( $( compgen -W "--preferences --help" -- $cur ) )
                return 0
                ;;
            ipmanage)
                COMPREPLY=( $( compgen -W "--create --update --remove --reread --repair --help --ip_list --ssl_list --inter_list --xml-info --reset_ssl_certificate --auto-remap-ip-addresses --allow-update-public-on-cloud --update-public-on-cloud --remap --auto-remap" -- $cur ) )
                return 0
                ;;
            scheduler)
                COMPREPLY=( $( compgen -W "--run --list --create --update --delete --help" -- $cur ) )
                return 0
                ;;
            database)
                COMPREPLY=( $( compgen -W "--create --update --remove --register --assign-to-subscription --create-dbuser --update-dbuser --remove-dbuser --register-dbuser --remove-dbs --remove-dbus --upload --download --help" -- $cur ) )
                return 0
                ;;
            subscription)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --suspend --webspace-on --webspace-off --lock-subscription --unlock-subscription --no-subscription --switch-subscription --sync-subscription --add-subscription --remove-subscription --change-owner --help --list --merge --shells --add-aps-filter-item --remove-aps-filter-item --disable-aps-filter --enable-aps-filter --show-aps-filter-info --add-custom-plan-item --remove-custom-plan-item --remove-all-custom-plan-items --show-custom-plan-items --update-php-settings --show-php-settings --update-web-server-settings --show-web-server-settings --update-web-app-firewall --show-web-app-firewall" -- $cur ) )
                return 0
                ;;
            protdir)
                COMPREPLY=( $( compgen -W "--create --update --remove --help" -- $cur ) )
                return 0
                ;;
            domain_restriction)
                COMPREPLY=( $( compgen -W "--add --add-list --remove-list --rename --remove --enable --disable --list --help" -- $cur ) )
                return 0
                ;;
            service_plan)
                COMPREPLY=( $( compgen -W "--create --update --duplicate --remove --info --xml-info --help --create-default" -- $cur ) )
                return 0
                ;;
            repair)
                COMPREPLY=( $( compgen -W "--run --convert-mailboxes-to-lowercase --restore-vhosts-permissions --installation --reconfigure-ssl-certificates --all --db --web --mysql --ftp --fs --dns --mail --sysusers --show-lock-manager-status --help" -- $cur ) )
                return 0
                ;;
            panel_gui)
                COMPREPLY=( $( compgen -W "--preferences --help" -- $cur ) )
                return 0
                ;;
            maillist)
                COMPREPLY=( $( compgen -W "--create --update --remove --update-service --info --on --off --init-service --help --set-secure-links" -- $cur ) )
                return 0
                ;;
            virtdir)
                COMPREPLY=( $( compgen -W "--create --update --remove --info --help" -- $cur ) )
                return 0
                ;;
        esac
    else
        local cli_name=${COMP_WORDS[2]}
        local cli_command=${COMP_WORDS[3]}
        case "$cli_name" in
            event_handler)
                COMPREPLY=( $( compgen -W "-priority -user -command -event" -- $cur ) )
                return 0
                ;;
            turboaddr)
                COMPREPLY=( $( compgen -W "-owner-email -type -members -name -alias -email -title -company -home-phone -work-phone -mobile-phone -fax -home-address -work-address -notes -first-name -middle-names" -- $cur ) )
                return 0
                ;;
            optimization_settings)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            cloning)
                COMPREPLY=( $( compgen -W "-prepare-public-image -reset-license -reset-init-conf -skip-update -maintenance" -- $cur ) )
                return 0
                ;;
            branding_theme)
                COMPREPLY=( $( compgen -W "-name -source -vendor -destination" -- $cur ) )
                return 0
                ;;
            pleskbackup)
                COMPREPLY=( $( compgen -W "-from-file -verbose -split -compression-level -prefix -incremental -description -keep-local-backup -ftp-login -ftp-server -ftp-path -ftp-passive-mode -use-ftps -exclude-reseller -exclude-reseller-file -exclude-client -exclude-client-file -exclude-domain -exclude-domain-file -exclude-pattern -exclude-pattern-file -exclude-logs -output-file -exclude-mail -exclude-files -exclude-databases -include-server-settings" -- $cur ) )
                return 0
                ;;
            reseller_service_plan)
                COMPREPLY=( $( compgen -W "-new-name -duplicate-name -oversell -overuse -max-dom -max-subdom -max-dom-aliases -disk-space -disk-space-soft -max-traffic -max-traffic-soft -max-box -mbox-quota -max-wu -max-subftp-users -max-db -max-maillists -max-cl -max-site-builder -ip_pool -excl_ip_num -excl_ipv6_num" -- $cur ) )
                return 0
                ;;
            webstat)
                COMPREPLY=( $( compgen -W "-type -group -url" -- $cur ) )
                return 0
                ;;
            task-manager)
                COMPREPLY=( $( compgen -W "-json" -- $cur ) )
                return 0
                ;;
            aps)
                COMPREPLY=( $( compgen -W "-catalog-url -package-name -package-version -package-release -package-vendor -package-packager -package-id -domain -subdomain -ssl -url-prefix -db-name -db-user -passwd -db-server -prefix -visible -aps-force-updates" -- $cur ) )
                return 0
                ;;
            autoresponder)
                COMPREPLY=( $( compgen -W "-mail -status -subject -text -attach -format -charset -end-date" -- $cur ) )
                return 0
                ;;
            notification)
                COMPREPLY=( $( compgen -W "-code -send2admin -send2reseller -send2client -send2email -subj -subj-set-default -email -text -text-set-default" -- $cur ) )
                return 0
                ;;
            subdomain)
                COMPREPLY=( $( compgen -W "-new_name -http_code -mail-service-ip -login -passwd -www-root -webspace-name -ssi -php -php_handler_id -php_handler_type -cgi -perl -asp -python -fastcgi -ssl -ssl-redirect -mail_service_node_ip -mail_autodiscover -mail_dkim -notify -seo-redirect -description -admin-description -reseller-description -certificate-name -empty-document-root -domain -subdomains" -- $cur ) )
                return 0
                ;;
            database-server)
                COMPREPLY=( $( compgen -W "-type -set -admin -passwd" -- $cur ) )
                return 0
                ;;
            service_node)
                COMPREPLY=( $( compgen -W "-description -access-key -no-access-key -type -external-id -remote-ip-address -remote-ip-netmask -remote-ip-interface -remote-ip-type" -- $cur ) )
                return 0
                ;;
            webuser)
                COMPREPLY=( $( compgen -W "-passwd -passwd_type -domain -quota -php -ssi -cgi -perl -fastcgi -python -asp" -- $cur ) )
                return 0
                ;;
            branding)
                COMPREPLY=( $( compgen -W "-file -url -color -fit -json" -- $cur ) )
                return 0
                ;;
            anonftp)
                COMPREPLY=( $( compgen -W "-status -message -message-text -incoming -incoming-dirs -incoming-downloads -max-connects -incoming-limit -bandwidth" -- $cur ) )
                return 0
                ;;
            http2_pref)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            license)
                COMPREPLY=( $( compgen -W "-additional-key" -- $cur ) )
                return 0
                ;;
            service)
                COMPREPLY=( $( compgen -W "-include -exclude -detail -format" -- $cur ) )
                return 0
                ;;
            role)
                COMPREPLY=( $( compgen -W "-servicePermissionId -servicePermissionState -owner" -- $cur ) )
                return 0
                ;;
            scheduled-backup)
                COMPREPLY=( $( compgen -W "-server -reseller -customer -subscription -all -storage -keep-in-server-storage -backup-hourly-period -backup-time -backup-weekday -backup-day -incremental -full-frequency -full-retention -exclude-mail -exclude-user-files -exclude-databases -exclude-log-files -exclude-files-list -multivolume -volume-size -send-email-on-errors -email -json" -- $cur ) )
                return 0
                ;;
            apache)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            keyinfo)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            service_plan_addon)
                COMPREPLY=( $( compgen -W "-disk_space -wuscripts -duplicate-name -max_traffic -max_box -mbox_quota -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -max_site -max_dom_aliases -max_site_builder -hosting -quota -ssl -ssl-redirect -asp -ssi -php -cgi -perl -python -webstat -err_docs -webstat_protdir -new-name -publish-sb-site -owner -php_handler_id -php_handler_type -shell -fastcgi -php_safe_mode" -- $cur ) )
                return 0
                ;;
            secret_key)
                COMPREPLY=( $( compgen -W "-login -ip-address -description -key" -- $cur ) )
                return 0
                ;;
            passwords)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            traffic)
                COMPREPLY=( $( compgen -W "-date -type -value -direction" -- $cur ) )
                return 0
                ;;
            customer)
                COMPREPLY=( $( compgen -W "-company -name -login -passwd -passwd_type -phone -fax -email -address -city -state -zip -country -notify -creation-date -owner -reseller-plan -plan -ip -description -aps-filter-item-name -aps-filter-item-value" -- $cur ) )
                return 0
                ;;
            ip_pool)
                COMPREPLY=( $( compgen -W "-type -owner" -- $cur ) )
                return 0
                ;;
            locales)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            mail)
                COMPREPLY=( $( compgen -W "-manage-virusfilter -manage-spamfilter -mailbox -passwd -passwd_type -mbox_quota -aliases -mgroups -forwarding -forwarding-addresses -status -new -cp-access -description -external-email -json -delivery -antivirus -outgoing-messages-mbox-limit" -- $cur ) )
                return 0
                ;;
            backup-storage)
                COMPREPLY=( $( compgen -W "-server -reseller -customer -subscription -ftp-login -ftp-password -ftp-server -ftp-path -ftp-passive-mode -use-ftps -json" -- $cur ) )
                return 0
                ;;
            action-log)
                COMPREPLY=( $( compgen -W "-json -since -until -owner -type -period -num-periods -num-records" -- $cur ) )
                return 0
                ;;
            poweruser)
                COMPREPLY=( $( compgen -W "-simple -lock -lock-simple-mode" -- $cur ) )
                return 0
                ;;
            ftpsubaccount)
                COMPREPLY=( $( compgen -W "-login -passwd -passwd_type -domain -home" -- $cur ) )
                return 0
                ;;
            php_handler)
                COMPREPLY=( $( compgen -W "-id -displayname -path -clipath -phpini -type -service -poold -old-id -new-id -json" -- $cur ) )
                return 0
                ;;
            user)
                COMPREPLY=( $( compgen -W "-cname -role -passwd -status -phone -im-type -im -comment -owner -company -fax -address -city -state -zip -country -external-email -email -subscription-name -for-all-subscriptions -locale" -- $cur ) )
                return 0
                ;;
            php_settings)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            domain)
                COMPREPLY=( $( compgen -W "-new_name -dns -www -hosting -hst_type -http_code -target_url -service-plan -force -force-lock -ip -mail-service-ip -login -passwd -creation-date -www-root -webspace-name -parent-domain-name -hard_quota -ssi -php -php_handler_id -php_handler_type -php_safe_mode -cgi -cgi-mode -perl -asp -python -fastcgi -ssl -ssl-redirect -err_docs -log-rotate -log-bysize -log-bytime -log-max-num-files -log-compress -log-email -owner -vendor -mail_service -mail_service_node_ip -maillist_service -mail_autodiscover -mail_dkim -notify -map_ip -seo-redirect -unpaid-website-status -description -admin-description -reseller-description -outgoing-messages-domain-limit -shell -webstat -webstat-protdir-access -certificate-name -empty-document-root -aps-filter-item-name -aps-filter-item-value -custom-plan-item-name -settings -additional-settings -apache-mime-types -apache-handlers -ip-allow -ip-deny -apache-directory-index -apache-restrict-follow-sym-links -nginx-proxy-mode -nginx-http3-enabled -nginx-transparent-mode -nginx-serve-static -nginx-static-extensions -nginx-serve-php -web-server-expires -web-server-expires-static-only -web-server-headers -add-web-server-header -nginx-cache-enabled -nginx-cache-size -nginx-cache-timeout -nginx-cache-key -nginx-cache-cookies -nginx-cache-bypass-locations -nginx-cache-bypass-header-nocache -nginx-cache-bypass-header-auth -nginx-cache-bypass-get-nocache -nginx-cache-use-stale-5xx -nginx-cache-use-stale-4xx -nginx-cache-use-stale-updating -nginx-client-max-body-size -waf-rule-engine" -- $cur ) )
                return 0
                ;;
            dns)
                COMPREPLY=( $( compgen -W "-a -aaaa -ip -ns -nameserver -mx -mailexchanger -cname -canonical -ptr -subnet -txt -ds -caa -tag -priority -domain -www -primary -ttl -soa-refresh -soa-retry -soa-expire -soa-minimum -soa-rname-external -soa-rname-domain -soa-rname-owner -soa-serial-format -soa-ttl -list -srv -srv-priority -srv-weight -srv-port -srv-target-host -srv-protocol -srv-service -tlsa -tlsa-port -tlsa-protocol -tlsa-usage -tlsa-selector -tlsa-matching -tlsa-cert-data" -- $cur ) )
                return 0
                ;;
            domain_template)
                COMPREPLY=( $( compgen -W "-new-name -duplicate-name -no_usr -max_dom_aliases -overuse -disk_space -disk_space_soft -max_traffic -max_traffic_soft -max_box -mbox_quota -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -max_site -max_site_builder -expiration -log-rotate -log-bysize -log-bytime -log-max-num-files -log-compress -log-email -keep_traf_stat -mail -maillist -mail_autodiscover -wuscripts -dns_zone_type -hosting -quota -ssl -ssl-redirect -ssi -php -php_handler_id -php_handler_type -cgi -perl -python -asp -webstat -webstat_protdir -err_docs -owner -upsell_site_builder -unpaid-website-status -outgoing_messages_mbox_limit -outgoing_messages_domain_limit -outgoing_messages_subscription_limit -outgoing_messages_enable_sendmail -default_server_mysql -default_server_postgresql -webmail -apache-restrict-follow-sym-links -apache-additional-settings -apache-additional-ssl-settings" -- $cur ) )
                return 0
                ;;
            reseller_pref)
                COMPREPLY=( $( compgen -W "-power-user -oversell -overuse -max_dom -max_dom_aliases -disk_space -disk_space_soft -max_traffic -max_traffic_soft -max_box -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -max_cl -max_site_builder -locale -skin -multiple-sessions" -- $cur ) )
                return 0
                ;;
            crontab_shell)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            product_info)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            reseller_template)
                COMPREPLY=( $( compgen -W "-new-name -duplicate-name -oversell -overuse -max-dom -max-subdom -max-dom-aliases -disk-space -disk-space-soft -max-traffic -max-traffic-soft -max-box -mbox-quota -max-wu -max-subftp-users -max-db -max-maillists -max-cl -max-site-builder -ip_pool -excl_ip_num -excl_ipv6_num" -- $cur ) )
                return 0
                ;;
            settings)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            subscription_settings)
                COMPREPLY=( $( compgen -W "-max_dom_aliases -disk_space -disk_space_soft -max_traffic -max_traffic_soft -max_box -mbox_quota -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -max_site -expiration -overuse -max_site_builder -www -wuscripts -no_usr -keep_traf_stat -sign_outgoing_mail -outgoing_messages_mbox_limit -outgoing_messages_domain_limit -outgoing_messages_subscription_limit -outgoing_messages_enable_sendmail -webmail -webmail_certificate -mail_certificate -default_server_mysql -default_server_postgresql -database-id -settings -additional-settings" -- $cur ) )
                return 0
                ;;
            client)
                COMPREPLY=( $( compgen -W "-company -name -login -passwd -passwd_type -phone -fax -email -address -city -state -zip -country -notify -creation-date -owner -reseller-plan -plan -ip -description -aps-filter-item-name -aps-filter-item-value" -- $cur ) )
                return 0
                ;;
            nginx)
                COMPREPLY=( $( compgen -W "" -- $cur ) )
                return 0
                ;;
            reseller_plan)
                COMPREPLY=( $( compgen -W "-new-name -duplicate-name -oversell -overuse -max-dom -max-subdom -max-dom-aliases -disk-space -disk-space-soft -max-traffic -max-traffic-soft -max-box -mbox-quota -max-wu -max-subftp-users -max-db -max-maillists -max-cl -max-site-builder -ip_pool -excl_ip_num -excl_ipv6_num" -- $cur ) )
                return 0
                ;;
            domalias)
                COMPREPLY=( $( compgen -W "-new-name -mail -web -dns -domain -status -seo-redirect" -- $cur ) )
                return 0
                ;;
            init_conf)
                COMPREPLY=( $( compgen -W "-shared_ips -hostname -company -name -passwd -phone -fax -email -address -city -state -zip -country -send_personalized_announce -trial_license -license_agreed -encrypted-password -plain-password" -- $cur ) )
                return 0
                ;;
            domain_addon_service_plan)
                COMPREPLY=( $( compgen -W "-disk_space -wuscripts -duplicate-name -max_traffic -max_box -mbox_quota -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -max_site -max_dom_aliases -max_site_builder -hosting -quota -ssl -ssl-redirect -asp -ssi -php -cgi -perl -python -webstat -err_docs -webstat_protdir -new-name -publish-sb-site -owner -php_handler_id -php_handler_type -shell -fastcgi -php_safe_mode" -- $cur ) )
                return 0
                ;;
            extension)
                COMPREPLY=( $( compgen -W "-destination -no-ui -no-scripts -no-var -force" -- $cur ) )
                return 0
                ;;
            client_pref)
                COMPREPLY=( $( compgen -W "-overuse -max_dom -max_dom_aliases -disk_space -disk_space_soft -max_traffic -max_traffic_soft -max_box -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -locale -skin -multiple-sessions" -- $cur ) )
                return 0
                ;;
            custom_plan_items)
                COMPREPLY=( $( compgen -W "-uuid -visible -url -label -tooltip -image-file -internal -noframe -url-components" -- $cur ) )
                return 0
                ;;
            certificate)
                COMPREPLY=( $( compgen -W "-domain -admin -default -new-name -key-file -cert-file -cacert-file -csr-file -ip" -- $cur ) )
                return 0
                ;;
            server_dns)
                COMPREPLY=( $( compgen -W "-recursion -status -add-acl -a -aaaa -ip -mx -mailexchanger -ns -nameserver -cname -canonical -ptr -subnet -txt -caa -tag -priority -domain -ttl -soa-refresh -soa-retry -soa-expire -soa-minimum -soa-rname-enforce -soa-rname-external -soa-rname-domain -soa-rname-admin -soa-serial-format -soa-ttl -srv -srv-priority -srv-weight -srv-port -srv-target-host -srv-protocol -srv-service" -- $cur ) )
                return 0
                ;;
            ip_ban)
                COMPREPLY=( $( compgen -W "-ban_period -ban_time_window -max_retries -description -show_description" -- $cur ) )
                return 0
                ;;
            reseller)
                COMPREPLY=( $( compgen -W "-company -name -login -passwd -passwd_type -service-plan -force -force-lock -phone -fax -email -address -city -state -zip -country -notify -creation-date -plan-name -description -aps-filter-item-name -aps-filter-item-value" -- $cur ) )
                return 0
                ;;
            domain_pref)
                COMPREPLY=( $( compgen -W "-max_dom_aliases -disk_space -disk_space_soft -max_traffic -max_traffic_soft -max_box -mbox_quota -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -max_site -expiration -overuse -max_site_builder -www -wuscripts -no_usr -keep_traf_stat -sign_outgoing_mail -outgoing_messages_mbox_limit -outgoing_messages_domain_limit -outgoing_messages_subscription_limit -outgoing_messages_enable_sendmail -webmail -webmail_certificate -mail_certificate -default_server_mysql -default_server_postgresql -database-id -settings -additional-settings" -- $cur ) )
                return 0
                ;;
            server_pref)
                COMPREPLY=( $( compgen -W "-locale -skin -hostname -restart-apache -include-logs -include-databases -include-remote-databases -include-mailboxes -include-maillists -include-domaindumps -include-admindumps -count-type -stat-keep -traffic-direction -force-db-prefix -low-priority -compression-level -allow-local-ftp-backup -max-backup-processes -max-backup-files -keep-local-backup -backup-encryption-key-type -forbid-create-dns-subzone -domain-resolution-checker -force-db-user-prefix -custom-db-prefix -db-user-length -aps-catalog-url -aps-force-updates -aps-suggest-updates -disable-mail-ui -crontab-secure-shell -preview-domain -subdomain-dns-zone -autoupdates -autoupdates-third-party -autoupdates-email-notification -min_password_strength -forbid-ftp-user-rename -apache-pipelog -ftp-over-ssl -support-url -forbid-subscription-rename -ssl-protocols -ssl-ciphers -ssl-cipher-server-order -disable-upgrade-extensions -panel-certificate -certificate-repository -email-password-hashing -waf-rule-engine -waf-web-server -waf-rule-set -waf-archive-path -waf-rule-set-update-period -waf-config-preset -waf-rule-filter-ids -waf-filter-by-tags -waf-filter-by-regexp -waf-additional-settings" -- $cur ) )
                return 0
                ;;
            grey_listing)
                COMPREPLY=( $( compgen -W "-status -personal-conf -grey-interval -expire-interval -penalty-interval -penalty-status -blacklist -whitelist -domains-whitelist -domains-blacklist" -- $cur ) )
                return 0
                ;;
            admin)
                COMPREPLY=( $( compgen -W "-locale -skin -multiple-sessions -passwd -user -email -relative-url -support -encrypted-password -plain-password" -- $cur ) )
                return 0
                ;;
            admin_alias)
                COMPREPLY=( $( compgen -W "-login -passwd -email -enabled -contact -comment -locale -multiple_sessions -enable_admin_restrictions -force_admin_restrictions" -- $cur ) )
                return 0
                ;;
            site)
                COMPREPLY=( $( compgen -W "-new_name -dns -www -hosting -hst_type -http_code -target_url -mail-service-ip -login -passwd -creation-date -www-root -webspace-name -parent-domain-name -ssi -php -php_handler_id -php_handler_type -php_safe_mode -cgi -cgi-mode -perl -asp -python -fastcgi -ssl -ssl-redirect -err_docs -log-rotate -log-bysize -log-bytime -log-max-num-files -log-compress -log-email -mail_service -mail_service_node_ip -maillist_service -mail_autodiscover -mail_dkim -notify -map_ip -seo-redirect -description -admin-description -reseller-description -outgoing-messages-domain-limit -webstat -webstat-protdir-access -certificate-name -empty-document-root -settings -additional-settings" -- $cur ) )
                return 0
                ;;
            hotlink_protection)
                COMPREPLY=( $( compgen -W "-enabled -protected-extensions -friendly-domains" -- $cur ) )
                return 0
                ;;
            http3_pref)
                COMPREPLY=( $( compgen -W "-nginx" -- $cur ) )
                return 0
                ;;
            interface_template)
                COMPREPLY=( $( compgen -W "-mail_bounce" -- $cur ) )
                return 0
                ;;
            ipmanage)
                COMPREPLY=( $( compgen -W "-type -ssl_certificate -mask -interface -public_ip -drop-if-exists" -- $cur ) )
                return 0
                ;;
            scheduler)
                COMPREPLY=( $( compgen -W "-json -id -subscription -active -user -type -php -command -arguments -schedule -description -notify -email" -- $cur ) )
                return 0
                ;;
            database)
                COMPREPLY=( $( compgen -W "-domain -type -passwd -add_user -update_user -remove_user -user_name -database -user-role -any-database -server -allow-access-from -print-id -default -collation -charset -add-access -remove-access -set-acl -set-privileges -dump-file -recreate" -- $cur ) )
                return 0
                ;;
            subscription)
                COMPREPLY=( $( compgen -W "-new_name -dns -www -hosting -hst_type -http_code -target_url -service-plan -force -force-lock -ip -mail-service-ip -login -passwd -creation-date -www-root -webspace-name -parent-domain-name -hard_quota -ssi -php -php_handler_id -php_handler_type -php_safe_mode -cgi -cgi-mode -perl -asp -python -fastcgi -ssl -ssl-redirect -err_docs -log-rotate -log-bysize -log-bytime -log-max-num-files -log-compress -log-email -owner -vendor -mail_service -mail_service_node_ip -maillist_service -mail_autodiscover -mail_dkim -notify -map_ip -seo-redirect -unpaid-website-status -description -admin-description -reseller-description -shell -webstat -webstat-protdir-access -certificate-name -empty-document-root -aps-filter-item-name -aps-filter-item-value -custom-plan-item-name -settings -additional-settings -apache-mime-types -apache-handlers -ip-allow -ip-deny -apache-directory-index -apache-restrict-follow-sym-links -nginx-proxy-mode -nginx-http3-enabled -nginx-transparent-mode -nginx-serve-static -nginx-static-extensions -nginx-serve-php -web-server-expires -web-server-expires-static-only -web-server-headers -add-web-server-header -nginx-cache-enabled -nginx-cache-size -nginx-cache-timeout -nginx-cache-key -nginx-cache-cookies -nginx-cache-bypass-locations -nginx-cache-bypass-header-nocache -nginx-cache-bypass-header-auth -nginx-cache-bypass-get-nocache -nginx-cache-use-stale-5xx -nginx-cache-use-stale-4xx -nginx-cache-use-stale-updating -nginx-client-max-body-size -waf-rule-engine" -- $cur ) )
                return 0
                ;;
            protdir)
                COMPREPLY=( $( compgen -W "-domain -subdomain -title -passwd -add_user -update_user -remove_user -user_name -dir_name -type -passwd_type" -- $cur ) )
                return 0
                ;;
            domain_restriction)
                COMPREPLY=( $( compgen -W "-name -new-name -list" -- $cur ) )
                return 0
                ;;
            service_plan)
                COMPREPLY=( $( compgen -W "-new-name -duplicate-name -no_usr -max_dom_aliases -overuse -disk_space -disk_space_soft -max_traffic -max_traffic_soft -max_box -mbox_quota -max_wu -max_subftp_users -max_db -max_maillists -max_subdom -max_site -max_site_builder -expiration -log-rotate -log-bysize -log-bytime -log-max-num-files -log-compress -log-email -keep_traf_stat -mail -maillist -mail_autodiscover -wuscripts -dns_zone_type -hosting -quota -ssl -ssl-redirect -ssi -php -php_handler_id -php_handler_type -cgi -perl -python -asp -webstat -webstat_protdir -err_docs -owner -upsell_site_builder -unpaid-website-status -outgoing_messages_mbox_limit -outgoing_messages_domain_limit -outgoing_messages_subscription_limit -outgoing_messages_enable_sendmail -default_server_mysql -default_server_postgresql -webmail -apache-restrict-follow-sym-links -apache-additional-settings -apache-additional-ssl-settings" -- $cur ) )
                return 0
                ;;
            repair)
                case "$cli_command" in
                    --all)
                        COMPREPLY=( $( compgen -W "" -- $cur ) )
                        return 0
                        ;;
                    --installation)
                        COMPREPLY=( $( compgen -W "-y -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --db)
                        COMPREPLY=( $( compgen -W "-y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --ftp)
                        COMPREPLY=( $( compgen -W "-sys-users -y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --fs)
                        COMPREPLY=( $( compgen -W "-system -vhosts -y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --web)
                        COMPREPLY=( $( compgen -W "-domains-only -sslcerts -validate-configuration -server -php-handlers -apache-modules -php-fpm-configuration -y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --mail)
                        COMPREPLY=( $( compgen -W "-restore-configuration -only-domain-settings -y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --dns)
                        COMPREPLY=( $( compgen -W "-sync-zones -y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --mysql)
                        COMPREPLY=( $( compgen -W "-connection -databases -database-users -y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --mssql)
                        COMPREPLY=( $( compgen -W "-connection -databases -database-users -y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --websites-diagnostic)
                        COMPREPLY=( $( compgen -W "" -- $cur ) )
                        return 0
                        ;;
                    --sysusers)
                        COMPREPLY=( $( compgen -W "-y -n -verbose -json-output" -- $cur ) )
                        return 0
                        ;;
                    --help)
                        COMPREPLY=( $( compgen -W "" -- $cur ) )
                        return 0
                        ;;
                    *)
                        COMPREPLY=( $( compgen -W "-no-mchk -y -n -verbose -json-output -sys-users -y -n -verbose -json-output -system -vhosts -y -n -verbose -json-output -domains-only -sslcerts -validate-configuration -server -php-handlers -apache-modules -php-fpm-configuration -y -n -verbose -json-output -restore-configuration -only-domain-settings -y -n -verbose -json-output -sync-zones -y -n -verbose -json-output -connection -databases -database-users -y -n -verbose -json-output -y -n -verbose -json-output -y -n -verbose -treat-warnings-as-errors -json-output" -- $cur ) )
                        return 0
                        ;;
                esac
                ;;
            panel_gui)
                COMPREPLY=( $( compgen -W "-mail_bounce" -- $cur ) )
                return 0
                ;;
            maillist)
                COMPREPLY=( $( compgen -W "-domain -passwd -passwd_type -email -notify -status" -- $cur ) )
                return 0
                ;;
            virtdir)
                COMPREPLY=( $( compgen -W "-vhost -create_phys -name -path -access_source -access_read -access_write -dir_browsing -log_visits -create_app -execute_perm -parent_paths -run_in_mta -default_doc -default_doc_order -access_anonymous -access_windows -require_ssl -asp.net_version -php_version -ip_deny -ip_allow -mime-types -aspBufferingLimit -aspMaxRequestEntityAllowed -aspEnableServerDebug -aspEnableClientDebug -is_deny_by_concurrent_requests -max_concurrent_requests -is_deny_by_request_rate -max_requests -request_interval" -- $cur ) )
                return 0
                ;;
        esac
    fi
}
