#compdef _bw bw function _bw { local -a commands _arguments -C \ '--pretty[Format output. JSON is tabbed with two spaces.]' \ '--raw[Return raw output instead of a descriptive message.]' \ '--response[Return a JSON formatted version of response output.]' \ '--cleanexit[Exit with a success exit code (0) unless an error is thrown.]' \ '--quiet[Don'"'"'t return anything to stdout.]' \ '--nointeraction[Do not prompt for interactive user input.]' \ '--session[Pass session key instead of reading from env.]' \ '(-v --version)'{-v,--version}'[output the version number]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "1: :->cmnds" \ "*::arg:->args" case $state in cmnds) commands=( "login:Log into a user account." "logout:Log out of the current user account." "lock:Lock the vault and destroy active session keys." "unlock:Unlock the vault and return a new session key." "sync:Pull the latest vault data from server." "generate:Generate a password/passphrase." "encode:Base 64 encode stdin." "config:Configure CLI settings." "update:Check for updates." "completion:Generate shell completions." "status:Show server, last sync, user information, and vault status." "list:List an array of objects from the vault." "get:Get an object from the vault." "create:Create an object in the vault." "edit:Edit an object from the vault." "delete:Delete an object from the vault." "restore:Restores an object from the trash." "move:Move an item to an organization." "confirm:Confirm an object to the organization." "import:Import vault data from a file." "export:Export vault data to a CSV or JSON file." "share:--DEPRECATED-- Move an item to an organization." "send:Work with Bitwarden sends. A Send can be quickly created using this command or subcommands can be used to fine-tune the Send" "receive:Access a Bitwarden Send from a url" "device-approval:Manage device approval requests sent to organizations that use SSO with trusted devices." "serve:Start a RESTful API webserver." ) _describe "command" commands ;; esac case "$words[1]" in login) _bw_login ;; logout) _bw_logout ;; lock) _bw_lock ;; unlock) _bw_unlock ;; sync) _bw_sync ;; generate) _bw_generate ;; encode) _bw_encode ;; config) _bw_config ;; update) _bw_update ;; completion) _bw_completion ;; status) _bw_status ;; list) _bw_list ;; get) _bw_get ;; create) _bw_create ;; edit) _bw_edit ;; delete) _bw_delete ;; restore) _bw_restore ;; move) _bw_move ;; confirm) _bw_confirm ;; import) _bw_import ;; export) _bw_export ;; share) _bw_share ;; send) _bw_send ;; receive) _bw_receive ;; device-approval) _bw_device-approval ;; serve) _bw_serve ;; esac } function _bw_login { _arguments -C \ '--method[Two-step login method.]' \ '--code[Two-step login code.]' \ '--sso[Log in with Single-Sign On.]' \ '--apikey[Log in with an Api Key.]' \ '--passwordenv[Environment variable storing your password]' \ '--passwordfile[Path to a file containing your password as its first line]' \ '--check[Check login status.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_logout { } function _bw_lock { } function _bw_unlock { _arguments -C \ '--check[Check lock status.]' \ '--passwordenv[Environment variable storing your password]' \ '--passwordfile[Path to a file containing your password as its first line]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_sync { _arguments -C \ '(-f --force)'{-f,--force}'[Force a full sync.]' \ '--last[Get the last sync date.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_generate { _arguments -C \ '(-u --uppercase)'{-u,--uppercase}'[Include uppercase characters.]' \ '(-l --lowercase)'{-l,--lowercase}'[Include lowercase characters.]' \ '(-n --number)'{-n,--number}'[Include numeric characters.]' \ '(-s --special)'{-s,--special}'[Include special characters.]' \ '(-p --passphrase)'{-p,--passphrase}'[Generate a passphrase.]' \ '--length[Length of the password.]' \ '--words[Number of words.]' \ '--minNumber[Minimum number of numeric characters.]' \ '--minSpecial[Minimum number of special characters.]' \ '--separator[Word separator.]' \ '(-c --capitalize)'{-c,--capitalize}'[Title case passphrase.]' \ '--includeNumber[Passphrase includes number.]' \ '--ambiguous[Avoid ambiguous characters.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_encode { } function _bw_config { _arguments -C \ '--web-vault[Provides a custom web vault URL that differs from the base URL.]' \ '--api[Provides a custom API URL that differs from the base URL.]' \ '--identity[Provides a custom identity URL that differs from the base URL.]' \ '--icons[Provides a custom icons service URL that differs from the base URL.]' \ '--notifications[Provides a custom notifications URL that differs from the base URL.]' \ '--events[Provides a custom events URL that differs from the base URL.]' \ '--key-connector[Provides the URL for your Key Connector server.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_update { } function _bw_completion { _arguments -C \ '--shell[Shell to generate completions for.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_status { } function _bw_list { _arguments -C \ '--search[Perform a search on the listed objects.]' \ '--url[Filter items of type login with a url-match search.]' \ '--folderid[Filter items by folder id.]' \ '--collectionid[Filter items by collection id.]' \ '--organizationid[Filter items or collections by organization id.]' \ '--trash[Filter items that are deleted and in the trash.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_get { _arguments -C \ '--itemid[Attachment'"'"'s item id.]' \ '--output[Output directory or filename for attachment.]' \ '--organizationid[Organization id for an organization object.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_create { _arguments -C \ '--file[Path to file for attachment.]' \ '--itemid[Attachment'"'"'s item id.]' \ '--organizationid[Organization id for an organization object.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_edit { _arguments -C \ '--organizationid[Organization id for an organization object.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_delete { _arguments -C \ '--itemid[Attachment'"'"'s item id.]' \ '--organizationid[Organization id for an organization object.]' \ '(-p --permanent)'{-p,--permanent}'[Permanently deletes the item instead of soft-deleting it (item only).]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_restore { } function _bw_move { } function _bw_confirm { _arguments -C \ '--organizationid[Organization id for an organization object.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_import { _arguments -C \ '--formats[List formats]' \ '--organizationid[ID of the organization to import to.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_export { _arguments -C \ '--output[Output directory or filename.]' \ '--format[Export file format.]' \ '--password[Use password to encrypt instead of your Bitwarden account encryption key. Only applies to the encrypted_json format.]' \ '--organizationid[Organization id for an organization.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_share { } function _bw_send { local -a commands _arguments -C \ '(-f --file)'{-f,--file}'[Specifies that is a filepath]' \ '(-d --deleteInDays)'{-d,--deleteInDays}'[The number of days in the future to set deletion date, defaults to 7]' \ '(-a --maxAccessCount)'{-a,--maxAccessCount}'[The amount of max possible accesses.]' \ '--hidden[Hide in web by default. Valid only if --file is not set.]' \ '(-n --name)'{-n,--name}'[The name of the Send. Defaults to a guid for text Sends and the filename for files.]' \ '--notes[Notes to add to the Send.]' \ '--fullObject[Specifies that the full Send object should be returned rather than just the access url.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "1: :->cmnds" \ "*::arg:->args" case $state in cmnds) commands=( "list:List all the Sends owned by you" "template:Get json templates for send objects" "get:Get Sends owned by you." "receive:Access a Bitwarden Send from a url" "create:create a Send" "edit:edit a Send" "remove-password:removes the saved password from a Send." "delete:delete a Send" ) _describe "command" commands ;; esac case "$words[1]" in list) _bw_send_list ;; template) _bw_send_template ;; get) _bw_send_get ;; receive) _bw_send_receive ;; create) _bw_send_create ;; edit) _bw_send_edit ;; remove-password) _bw_send_remove-password ;; delete) _bw_send_delete ;; esac } function _bw_send_list { } function _bw_send_template { } function _bw_send_get { _arguments -C \ '--output[Output directory or filename for attachment.]' \ '--text[Specifies to return the text content of a Send]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_send_receive { _arguments -C \ '--password[Password needed to access the Send.]' \ '--passwordenv[Environment variable storing the Send'"'"'s password]' \ '--passwordfile[Path to a file containing the Sends password as its first line]' \ '--obj[Return the Send'"'"'s json object rather than the Send's content]' \ '--output[Specify a file path to save a File-type Send to]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_send_create { _arguments -C \ '--file[file to Send. Can also be specified in parent'"'"'s JSON.]' \ '--text[text to Send. Can also be specified in parent'"'"'s JSON.]' \ '--hidden[text hidden flag. Valid only with the --text option.]' \ '--password[optional password to access this Send. Can also be specified in JSON]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_send_edit { _arguments -C \ '--itemid[Overrides the itemId provided in [encodedJson]]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_send_remove-password { } function _bw_send_delete { } function _bw_receive { _arguments -C \ '--password[Password needed to access the Send.]' \ '--passwordenv[Environment variable storing the Send'"'"'s password]' \ '--passwordfile[Path to a file containing the Sends password as its first line]' \ '--obj[Return the Send'"'"'s json object rather than the Send's content]' \ '--output[Specify a file path to save a File-type Send to]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_device-approval { local -a commands case $state in cmnds) commands=( "list:List all pending requests for an organization" "approve:Approve a pending request" "approve-all:Approve all pending requests for an organization" "deny:Deny a pending request" "deny-all:Deny all pending requests for an organization" ) _describe "command" commands ;; esac case "$words[1]" in list) _bw_device-approval_list ;; approve) _bw_device-approval_approve ;; approve-all) _bw_device-approval_approve-all ;; deny) _bw_device-approval_deny ;; deny-all) _bw_device-approval_deny-all ;; esac } function _bw_device-approval_list { _arguments -C \ '--organizationid[The organization id (required)]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_device-approval_approve { _arguments -C \ '--organizationid[The organization id (required)]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_device-approval_approve-all { _arguments -C \ '--organizationid[The organization id (required)]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_device-approval_deny { _arguments -C \ '--organizationid[The organization id (required)]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_device-approval_deny-all { _arguments -C \ '--organizationid[The organization id (required)]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" } function _bw_serve { _arguments -C \ '--hostname[The hostname to bind your API webserver to.]' \ '--port[The port to run your API webserver on.]' \ '--disable-origin-protection[If set, allows requests with origin header. Warning, this option exists for backwards compatibility reasons and exposes your environment to known CSRF attacks.]' \ '(-h --help)'{-h,--help}'[output usage information]' \ "*::arg:->args" }