#HQApi tab completion script for bash #Written by Greg Walters on 05/28/2010 #Run 'source hqapi_complete' _hqapi() { local cur prev opts base COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" # prev="${COMP_WORDS[COMP_CWORD-1]}" prev="${COMP_WORDS[2]}" first="${COMP_WORDS[1]}" opts="agent alertdefinition autodiscovery dependency escalation group maintenance metric metricData metricTemplate resource role user --host= --port= --user= --password= --secure=" case "${first}" in agent) case "${prev}" in list) local agent="" ;; *) local agent="list" ;; esac COMPREPLY=( $(compgen -W "${agent}" -- ${cur}) ) return 0 ;; alertdefinition) case "${prev}" in list) local alertdefinition="--alertName= --conditionCount= --escalation= --excludeTypeAlerts --excludeTypeIds --file= --group= --typeAlerts --resourceName=" ;; sync) local alertdefinition="" ;; delete) local alertdefinition="--id=" ;; *) local alertdefinition="list sync delete " ;; esac COMPREPLY=( $(compgen -W "${alertdefinition}" -- ${cur}) ) return 0 ;; autodiscovery) case "${prev}" in list) local autodiscovery="" ;; approve) local autodiscovery="--regex=" ;; *) local autodiscovery="list approve" ;; esac COMPREPLY=( $(compgen -W "${autodiscovery}" -- ${cur}) ) return 0 ;; dependency) case "${prev}" in list) local dependency="--children --file= --id= --name= --prototype= --relation=" ;; sync) local dependency="--all --add --remove" ;; delete) local dependency="--id=" ;; select) local dependency="--children --file= --name= --prototype" ;; *) local dependency="list sync delete select" ;; esac COMPREPLY=( $(compgen -W "${dependency}" -- ${cur}) ) return 0 ;; escalation) case "${prev}" in list) local escalation="" ;; sync) local escalation="" ;; *) local escalation="list sync" ;; esac COMPREPLY=( $(compgen -W "${escalation}" -- ${cur}) ) return 0 ;; group) case "${prev}" in list) local group="--compatible --mixed" ;; sync) local group="" ;; delete) local group="" ;; *) local group="list sync delete" ;; esac COMPREPLY=( $(compgen -W "${group}" -- ${cur}) ) return 0 ;; maintenance) case "${prev}" in schedule) local maintenance="--groupId= --start= --end=" ;; unschedule) local maintenance="--groupId=" ;; get) local maintenance="--groupId=" ;; *) local maintenance="schedule unschedule get" ;; esac COMPREPLY=( $(compgen -W "${maintenance}" -- ${cur}) ) return 0 ;; metric) case "${prev}" in list) local metric="--id= --enable" ;; sync) local metric="" ;; *) local metric="list sync" ;; esac COMPREPLY=( $(compgen -W "${metric}" -- ${cur}) ) return 0 ;; metricData) case "${prev}" in list) local metricdata="--metricId=" ;; *) local metricdata="list" ;; esac COMPREPLY=( $(compgen -W "${metricdata}" -- ${cur}) ) return 0 ;; metricTemplate) case "${prev}" in list) local metrictemplate="--prototype=" ;; sync) local metrictemplate="" ;; *) local metrictemplate="list sync" ;; esac COMPREPLY=( $(compgen -W "${metrictemplate}" -- ${cur}) ) return 0 ;; resource) case "${prev}" in list) local resource="--platform= --prototype= --id= --name= --verbose --children" ;; sync) local resource="--file=" ;; delete) local resource="--id=" ;; createPlatform) local resource="--prototype= --agentId= --fqdn= --ip= --name=" ;; createServer) local resource="--prototype= --resourceId= --name=" ;; createService) local resource="--prototype= --resourceId= --name=" ;; move) local resource="--id= --to=" ;; *) local resource="list sync delete createPlatform createServer createService move" ;; esac COMPREPLY=( $(compgen -W "${resource}" -- ${cur}) ) return 0 ;; role) case "${prev}" in list) local role="--id= --name=" ;; sync) local role="--id= --name=" ;; *) local role="list sync" ;; esac COMPREPLY=( $(compgen -W "${role}" -- ${cur}) ) return 0 ;; user) case "${prev}" in list) local user="--id= --name=" ;; sync) local user="" ;; *) local user="list sync" ;; esac COMPREPLY=( $(compgen -W "${user}" -- ${cur}) ) return 0 ;; *) ;; esac COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 } complete -F _hqapi hqapi.sh