# Copyright (c) 2026, Thomas Goirand <zigo@debian.org>
# Copyright (c) 2026, Infomaniak <production@infomaniak.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, see <https://www.gnu.org/licenses/>.
#
# Bash completion for the "orac" command (the orac project).
#
# Covers both surfaces: the legacy command line (get/set with the
# dotted target grammar, the client-side flows) and the friendly
# object-verb commands, including the reversed lowercase target paths
# ("orac bios bootsettings setbootorderen show|set").
#
# Adapted from the completion script shipped by openstack-cluster-installer,
# (c) 2018-2024 Thomas Goirand <zigo@debian.org>, by the same author.

_orac_reply () {
	# $1: the candidate word list, $2: the current word prefix.
	local words
	words=$(compgen -W "$1" -- "$2" | sort -u)
	COMPREPLY=( $words )
}

_orac_output_opts () {
	_orac_reply "--format csv json table value shell yaml
		-c --column --sort-column --fit-width --print-empty
		--max-width --noindent --prefix --variable --quote" \
		"${cur}"
}

_orac_target_words () {
	# Completes the lowercase path words of the reversed target
	# grammar: each typed word matches its position's component
	# case-insensitively, or the component ends with the word (the
	# FQDD prefix a group repeats stays optional).  The candidates
	# at the current position are the next component of every
	# matching target, both whole and stripped of the previous
	# component; a complete path completes the show/set verbs.  Past
	# the set verb the value completes from the vocabulary the
	# controller documents for the attribute (see
	# _orac_set_value_words); past the value nothing is offered.
	local -a words=("${cmd_name}")
	local verb=""
	local w target lower ok i c next prev_comp candidates
	local -a typed=("${COMP_WORDS[@]:2:COMP_CWORD-2}")
	local position=0
	for w in "${typed[@]}"; do
		position=$((position + 1))
		case "${w}" in
		-*) ;;
		show) return 0 ;;
		set) verb="set" ; break ;;
		*) words+=("${w}") ;;
		esac
	done
	if [ -n "${verb}" ]; then
		# only the word right after the verb is the value
		[ "${#typed[@]}" -eq "${position}" ] || return 0
		_orac_set_value_reply
		return 0
	fi
	for target in ${iDRAC_OPTS} ${BIOS_OPTS} ${NIC_OPTS} ${STORAGE_OPTS}; do
		lower="${target,,}"
		local -a comps
		IFS="." read -r -a comps <<< "${lower}"
		if [ "${#comps[@]}" -eq "${#words[@]}" ]; then
			ok=1
			for i in "${!comps[@]}"; do
				c="${comps[i]}"
				w="${words[i]}"
				case "${c}" in
				"${w}") ;;
				*"${w}") [ -n "${w}" ] || ok=0 ;;
				*) ok=0 ;;
				esac
				[ "${ok}" -eq 1 ] || break
			done
			[ "${ok}" -eq 1 ] && candidates="${candidates} show set"
			continue
		fi
		[ "${#comps[@]}" -gt "${#words[@]}" ] || continue
		ok=1
		for i in "${!words[@]}"; do
			c="${comps[i]}"
			w="${words[i]}"
			case "${c}" in
			"${w}") ;;
			*"${w}") [ -n "${w}" ] || ok=0 ;;
			*) ok=0 ;;
			esac
			[ "${ok}" -eq 1 ] || break
		done
		if [ "${ok}" -eq 1 ]; then
			next="${comps[${#words[@]}]}"
			prev_comp=""
			if [ "${#words[@]}" -gt 0 ]; then
				prev_comp="${comps[$(( ${#words[@]} - 1 ))]}"
			fi
			if [ "${#prev_comp}" -gt 2 ] && \
			   [ "${next}" != "${next#"${prev_comp}"}" ]; then
				candidates="${candidates} ${next#"${prev_comp}"}"
			fi
			candidates="${candidates} ${next}"
		fi
	done
	_orac_reply "${candidates}" "${cur}"
}

_orac_set_value_reply () {
	# Completes the value word(s) of one attribute: the typed path
	# words must resolve to one target, exactly first, elision
	# second, and the value vocabulary comes from the controller's
	# own help rendering (_orac_set_value_words).
	local target ok i c w exact_match
	local -a comps
	local exact="" elided=""
	for target in ${iDRAC_OPTS} ${BIOS_OPTS} ${NIC_OPTS} ${STORAGE_OPTS}; do
		lower="${target,,}"
		IFS="." read -r -a comps <<< "${lower}"
		[ "${#comps[@]}" -eq "${#words[@]}" ] || continue
		ok=1
		exact_match=1
		for i in "${!comps[@]}"; do
			c="${comps[i]}"
			w="${words[i]}"
			case "${c}" in
			"${w}") ;;
			*"${w}") [ -n "${w}" ] || ok=0 ; exact_match=0 ;;
			*) ok=0 ;;
			esac
			[ "${ok}" -eq 1 ] || break
		done
		[ "${ok}" -eq 1 ] || continue
		if [ "${exact_match}" -eq 1 ]; then
			exact="${exact} ${target}"
		else
			elided="${elided} ${target}"
		fi
	done
	local list="${exact}"
	[ -n "${list}" ] || list="${elided}"
	local -a picked=(${list})
	if [ "${#picked[@]}" -eq 1 ]; then
		local vals
		vals=$(_orac_set_value_words "${picked[0],,}")
		[ -n "${vals}" ] && _orac_reply "${vals}" "${cur}"
	fi
}

# BEGIN GENERATED SET VALUES
_orac_set_value_words () {
	# $1: the attribute target, lower case; echoes its
	# value words from the controller help captures.
	case "$1" in
	bios.biosbootsettings.bootmode) echo 'Bios Uefi' ;;
	bios.biosbootsettings.bootseqretry) echo 'Enabled Disabled Reset' ;;
	bios.biosbootsettings.genericusbboot) echo 'Enabled Disabled' ;;
	bios.biosbootsettings.hddfailover) echo 'Enabled Disabled' ;;
	bios.biosbootsettings.hddplaceholder) echo 'Enabled Disabled' ;;
	bios.biosbootsettings.sysprepclean) echo 'None Yes' ;;
	bios.dellcontrolledturbo.controlledturbo) echo 'Enabled Disabled' ;;
	bios.dellcontrolledturbo.optimizermode) echo 'Auto Enabled Disabled' ;;
	bios.integrateddevices.embnic1nic2) echo 'Enabled DisabledOs' ;;
	bios.integrateddevices.embvideo) echo 'Enabled Disabled' ;;
	bios.integrateddevices.integratednetwork1) echo 'Enabled DisabledOs' ;;
	bios.integrateddevices.integratedraid) echo 'Enabled Disabled' ;;
	bios.integrateddevices.mmiolimit) echo '8TB' ;;
	bios.integrateddevices.oswatchdogtimer) echo 'Enabled Disabled' ;;
	bios.integrateddevices.pcieenhancedpreferredio) echo 'Enabled Disabled' ;;
	bios.integrateddevices.pciepreferrediobus) echo 'Enabled Disabled' ;;
	bios.integrateddevices.sriovglobalenable) echo 'Enabled Disabled' ;;
	bios.integrateddevices.usbmanagedport) echo 'On Off' ;;
	bios.integrateddevices.usbports) echo 'AllOn OnlyBackPortsOn AllOff AllOffDynamic' ;;
	bios.memorymapout.dimmslot00) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot01) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot02) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot03) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot04) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot05) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot06) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot07) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot08) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot09) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot10) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot11) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot12) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot13) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot14) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot15) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot16) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot17) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot18) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot19) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot20) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot21) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot22) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot23) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot24) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot25) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot26) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot27) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot28) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot29) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot30) echo 'Enabled Disabled' ;;
	bios.memorymapout.dimmslot31) echo 'Enabled Disabled' ;;
	bios.memsettings.cecriticalsel) echo 'Enabled Disabled' ;;
	bios.memsettings.correccsmi) echo 'Enabled Disabled' ;;
	bios.memsettings.dramrefreshdelay) echo 'Performance Minimum' ;;
	bios.memsettings.memopmode) echo 'OptimizerMode' ;;
	bios.memsettings.memoryinterleaving) echo 'Auto Disabled' ;;
	bios.memsettings.memoryinterleavingsize) echo 'Auto' ;;
	bios.memsettings.memtest) echo 'Enabled Disabled' ;;
	bios.memsettings.ppronuce) echo 'Enabled Disabled' ;;
	bios.miscsettings.dellwysep25biosaccess) echo 'Enabled Disabled' ;;
	bios.miscsettings.errprompt) echo 'Enabled Disabled' ;;
	bios.miscsettings.forceint10) echo 'Enabled Disabled' ;;
	bios.miscsettings.numlock) echo 'On Off' ;;
	bios.miscsettings.powercyclerequest) echo 'None FullPowerCycle' ;;
	bios.nvmesettings.biosnvmedriver) echo 'DellQualifiedDrives AllDrives' ;;
	bios.nvmesettings.nvmemode) echo 'NonRaid Raid' ;;
	bios.onetimeboot.onetimebootmode) echo 'Disabled OneTimeBootSeq OneTimeHddSeq' ;;
	bios.onetimeboot.onetimebootseqdev) echo 'HardDisk.List.1 NIC.Integrated.1' ;;
	bios.onetimeboot.onetimehddseqdev) echo 'RAID.SL.8' ;;
	bios.procsettings.amdiohcworkaround) echo 'Enabled Disabled' ;;
	bios.procsettings.ccdcores) echo 'All' ;;
	bios.procsettings.ccxasnumadomain) echo 'Enabled Disabled Auto' ;;
	bios.procsettings.iommusupport) echo 'Enabled Disabled' ;;
	bios.procsettings.kerneldmaprotection) echo 'Enabled Disabled' ;;
	bios.procsettings.l1streamhwprefetcher) echo 'Enabled Disabled' ;;
	bios.procsettings.l2streamhwprefetcher) echo 'Enabled Disabled' ;;
	bios.procsettings.logicalproc) echo 'Enabled Disabled' ;;
	bios.procsettings.madtcoreenumeration) echo 'RoundRobin Linear' ;;
	bios.procsettings.numanodespersocket) echo '0 1 2 4' ;;
	bios.procsettings.procccds) echo 'All 2' ;;
	bios.procsettings.procconfigtdp) echo 'Nominal Maximum Minimum' ;;
	bios.procsettings.procvirtualization) echo 'Enabled Disabled' ;;
	bios.procsettings.procx2apic) echo 'Enabled Disabled' ;;
	bios.procsettings.transparentsme) echo 'Enabled Disabled' ;;
	bios.redundantoscontrol.redundantosboot) echo 'Enabled Disabled' ;;
	bios.redundantoscontrol.redundantoslocation) echo 'None' ;;
	bios.redundantoscontrol.redundantosstate) echo 'Visible Hidden' ;;
	bios.satasettings.embsata) echo 'AhciMode RaidMode Off' ;;
	bios.satasettings.sataporta) echo 'Auto Off' ;;
	bios.satasettings.sataportb) echo 'Auto Off' ;;
	bios.satasettings.sataportc) echo 'Auto Off' ;;
	bios.satasettings.sataportd) echo 'Auto Off' ;;
	bios.satasettings.sataporte) echo 'Auto Off' ;;
	bios.satasettings.sataportf) echo 'Auto Off' ;;
	bios.satasettings.sataportg) echo 'Auto Off' ;;
	bios.satasettings.sataporth) echo 'Auto Off' ;;
	bios.satasettings.securityfreezelock) echo 'Enabled Disabled' ;;
	bios.satasettings.writecache) echo 'Enabled Disabled' ;;
	bios.serialcommsettings.contermtype) echo 'Vt100Vt220 Ansi' ;;
	bios.serialcommsettings.extserialconnector) echo 'Serial1 Serial2 RemoteAccDevice' ;;
	bios.serialcommsettings.failsafebaud) echo '115200 57600 19200 9600' ;;
	bios.serialcommsettings.redirafterboot) echo 'Enabled Disabled' ;;
	bios.serialcommsettings.serialcomm) echo 'OnNoConRedir OnConRedir Off' ;;
	bios.serialcommsettings.serialportaddress) echo 'Com1 Com2' ;;
	bios.slotbifurcation.dellautodiscovery) echo 'PlatformDefault ManualControl' ;;
	bios.slotbifurcation.slot1bif) echo 'x16 x4 x8 x4x4x8 x8x4x4' ;;
	bios.slotbifurcation.slot2bif) echo 'x16 x4 x8 x4x4x8 x8x4x4' ;;
	bios.slotbifurcation.slot3bif) echo 'x16 x4 x8 x4x4x8 x8x4x4' ;;
	bios.slotdisablement.slot1) echo 'Enabled Disabled BootDriverDisabled' ;;
	bios.slotdisablement.slot2) echo 'Enabled Disabled BootDriverDisabled' ;;
	bios.slotdisablement.slot3) echo 'Enabled Disabled BootDriverDisabled' ;;
	bios.sysprofilesettings.apbdis) echo 'Enabled Disabled' ;;
	bios.sysprofilesettings.boostfmax) echo 'BoostFMaxAuto BoostFMaxManual' ;;
	bios.sysprofilesettings.determinismslider) echo 'PowerDeterminism PerfDeterminism' ;;
	bios.sysprofilesettings.dynamiclinkwidthmanagement) echo 'Forced Unforced' ;;
	bios.sysprofilesettings.efficiencyoptimizedmode) echo 'Enabled Disabled' ;;
	bios.sysprofilesettings.hsmp) echo 'Enabled Disabled Auto' ;;
	bios.sysprofilesettings.memfrequency) echo 'MaxPerf' ;;
	bios.sysprofilesettings.mempatrolscrub) echo 'Standard Disabled' ;;
	bios.sysprofilesettings.memrefreshrate) echo '1x 2x' ;;
	bios.sysprofilesettings.pcieaspml1) echo 'Enabled Disabled' ;;
	bios.sysprofilesettings.proccstates) echo 'Enabled Disabled Autonomous' ;;
	bios.sysprofilesettings.procpwrperf) echo 'OsDbpm MaxPerf' ;;
	bios.sysprofilesettings.procturbomode) echo 'Enabled Disabled' ;;
	bios.sysprofilesettings.sysprofile) echo 'PerfPerWattOptimizedOs PerfOptimized Custom' ;;
	bios.sysprofilesettings.workloadprofile) echo 'NotConfigured HpcProfile' ;;
	bios.sysprofilesettings.writedatacrc) echo 'Enabled Disabled' ;;
	bios.syssecurity.acpwrrcvry) echo 'Last On Off' ;;
	bios.syssecurity.acpwrrcvrydelay) echo 'Immediate Random User' ;;
	bios.syssecurity.authorizedevicefirmware) echo 'Enabled Disabled' ;;
	bios.syssecurity.passwordstatus) echo 'Unlocked Locked' ;;
	bios.syssecurity.pwrbutton) echo 'Enabled Disabled' ;;
	bios.syssecurity.secureboot) echo 'Enabled Disabled' ;;
	bios.syssecurity.securebootmode) echo 'UserMode DeployedMode' ;;
	bios.syssecurity.securebootpolicy) echo 'Standard Custom LinuxBoot VmwareBoot MicrosoftBoot' ;;
	bios.syssecurity.ueficacertscope) echo 'DeviceFirmwareAndOs' ;;
	bios.syssecurity.uefivariableaccess) echo 'Standard Controlled' ;;
	bios.tpmadvancedsettings.tpmppibypassclear) echo 'Disabled Enabled' ;;
	bios.tpmadvancedsettings.tpmppibypassprovision) echo 'Disabled Enabled' ;;
	idrac.activedirectory.certvalidationenable) echo '0 Disabled 1 Enabled' ;;
	idrac.activedirectory.connection) echo '0 StartTLS 1 LDAPS' ;;
	idrac.activedirectory.dclookupbyuserdomain) echo '0 Disabled 1 Enabled' ;;
	idrac.activedirectory.dclookupenable) echo '0 Disabled 1 Enabled' ;;
	idrac.activedirectory.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.activedirectory.gclookupenable) echo '0 Disabled 1 Enabled' ;;
	idrac.activedirectory.rsasecurid2faad) echo '0 Disabled 1 Enabled' ;;
	idrac.activedirectory.schema) echo '1 2' ;;
	idrac.activedirectory.ssoenable) echo '0 Disabled 1 Enabled' ;;
	idrac.asrconfig.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.autodiscovery.enableipchangeannounce) echo '0 Disabled 1 Enabled' ;;
	idrac.autodiscovery.enableipchangeannouncefromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.autodiscovery.enableipchangeannouncefrommdns) echo '0 Disabled 1 Enabled' ;;
	idrac.autodiscovery.enableipchangeannouncefromunicastdns) echo '0 Disabled 1 Enabled' ;;
	idrac.autodiscovery.sendtestannouncement) echo '0 Disabled 1 SendOnce' ;;
	idrac.autodiscovery.unsolicitedipchangeannouncerate) echo '0 Disabled 1 2 3 4 5 6 7 8 9' ;;
	idrac.autooslockgroup.autooslockstate) echo '0 Disabled 1 Enabled' ;;
	idrac.currentipv4.dhcpenable) echo '0 Disabled 1 Enabled' ;;
	idrac.currentipv4.dnsfromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.currentipv4.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.currentipv6.addressgenerationmode) echo '0 StablePrivacy 1 EUI64' ;;
	idrac.currentipv6.autoconfig) echo '0 Disabled 1 Enabled' ;;
	idrac.currentipv6.dnsfromdhcp6) echo '0 Disabled 1 Enabled' ;;
	idrac.currentipv6.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.activenic) echo '0 None 1 Dedicated 2 LOM1 3 LOM2 4 LOM3 5 LOM4 6 LOM5 7 LOM6 8 LOM7 9 LOM8 10 LOM9 11 LOM10 12 LOM11 13 LOM12 14 LOM13 15 LOM14 16 LOM15 17 LOM16' ;;
	idrac.currentnic.activesharedlom) echo '0 None 1 LOM1 2 LOM2 3 LOM3 4 LOM4 5 LOM5 6 LOM6 7 LOM7 8 LOM8 9 LOM9 10 LOM10 11 LOM11 12 LOM12 13 LOM13 14 LOM14 15 LOM15 16 LOM16' ;;
	idrac.currentnic.autodetect) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.autoneg) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.dnsdomainfromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.dnsregister) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.duplex) echo '0 Half 1 Full' ;;
	idrac.currentnic.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.failover) echo '0 None 1 LOM1 2 LOM2 3 LOM3 4 LOM4 5 All 6 LOM5 7 LOM6' ;;
	idrac.currentnic.linkstatus) echo '0 No 1 Yes' ;;
	idrac.currentnic.pingenable) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.speed) echo '0 10 1 100 2 1000 3 2500 4 10000 5 20000 6 25000 7 40000 8 50000 9 100000' ;;
	idrac.currentnic.vlanenable) echo '0 Disabled 1 Enabled' ;;
	idrac.currentnic.vlansetting) echo '0 1 2' ;;
	idrac.defaultcredentialmitigationconfiggroup.defaultcredentialmitigation) echo '0 Disabled 1 Enabled' ;;
	idrac.delegatedauth.mode) echo '0 Mixed 1 Discovery 2 Offline' ;;
	idrac.delegatedauth.serviceenabled) echo '0 Disabled 1 Enabled' ;;
	idrac.emailalert.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.groupmanager.status) echo '0 Disabled 1 Enabled' ;;
	idrac.info.servergen) echo '1 12G 2 13G 3 14G 4 15G' ;;
	idrac.info.type) echo '0 12G/13G/14G/15G 1 Other 2 Unknown 16 17 32 33 21 34 48 49 50 64 65 66' ;;
	idrac.integrateddatacenter.discoveryenable) echo '0 Disabled 1 Enabled' ;;
	idrac.ioidopt.initiatorpersistencepolicy) echo '0 None 1 WarmReset 2 ColdReset 3 4 ACPowerLoss 5 6 7' ;;
	idrac.ioidopt.ioidoptenable) echo '0 Disabled 1 Enabled' ;;
	idrac.ioidopt.persistencepolicyonpartreplacement) echo '0 Disabled 1 Enabled' ;;
	idrac.ioidopt.storagetargetpersistencepolicy) echo '0 None 1 WarmReset 2 ColdReset 3 4 ACPowerLoss 5 6 7' ;;
	idrac.ioidopt.virtualaddresspersistencepolicyauxpwrd) echo '0 None 1 WarmReset 2 ColdReset 3 4 ACPowerLoss 5 6 7' ;;
	idrac.ioidopt.virtualaddresspersistencepolicynonauxpwrd) echo '0 None 1 WarmReset 2 ColdReset 3 4 ACPowerLoss 5 6 7' ;;
	idrac.ipblocking.blockenable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipblocking.rangeenable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipblocking.rangeenable2) echo '0 Disabled 1 Enabled' ;;
	idrac.ipblocking.rangeenable3) echo '0 Disabled 1 Enabled' ;;
	idrac.ipblocking.rangeenable4) echo '0 Disabled 1 Enabled' ;;
	idrac.ipblocking.rangeenable5) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmilan.alertenable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmilan.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmilan.privlimit) echo '2 User 3 Operator 4 Administrator' ;;
	idrac.ipmiserial.baudrate) echo '9600 19200 57600 115200' ;;
	idrac.ipmiserial.chanprivlimit) echo '2 User 3 Operator 4 Administrator' ;;
	idrac.ipmiserial.connectionmode) echo '0 Terminal 1 Basic' ;;
	idrac.ipmiserial.deletecontrol) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmiserial.echocontrol) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmiserial.flowcontrol) echo '0 None 1 RTS/CTS' ;;
	idrac.ipmiserial.handshakecontrol) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmiserial.inputnewlineseq) echo '1 Enter 2 Null' ;;
	idrac.ipmiserial.lineedit) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmiserial.newlineseq) echo '0 None 1 CR-LF 2 NULL 3 CR 4 LF-CR 5 LF' ;;
	idrac.ipmisol.baudrate) echo '9600 19200 57600 115200' ;;
	idrac.ipmisol.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipmisol.minprivilege) echo '2 User 3 Operator 4 Administrator' ;;
	idrac.ipv4.dhcpenable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipv4.dnsfromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.ipv4.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipv4static.dnsfromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.ipv6.addressgenerationmode) echo '0 StablePrivacy 1 EUI64' ;;
	idrac.ipv6.addressstate) echo '0 Active 1 Disabled 2 Pending 3 Failed 4 Deprecated 5 Invalid' ;;
	idrac.ipv6.autoconfig) echo '0 Disabled 1 Enabled' ;;
	idrac.ipv6.dnsfromdhcp6) echo '0 Disabled 1 Enabled' ;;
	idrac.ipv6.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.ipv6static.dnsfromdhcp6) echo '0 Disabled 1 Enabled' ;;
	idrac.ldap.certvalidationenable) echo '0 Disabled 1 Enabled' ;;
	idrac.ldap.connection) echo '0 StartTLS 1 LDAPS' ;;
	idrac.ldap.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.ldap.groupattributeisdn) echo '0 Disabled 1 Enabled' ;;
	idrac.ldap.rsasecurid2faldap) echo '0 Disabled 1 Enabled' ;;
	idrac.localsecurity.localconfig) echo '0 Disabled 1 Enabled' ;;
	idrac.localsecurity.prebootconfig) echo '0 Disabled 1 Enabled' ;;
	idrac.lockdown.systemlockdown) echo '0 Disabled 1 Enabled' ;;
	idrac.logging.lcduplicateeventenable) echo '0 Disabled 1 Enabled' ;;
	idrac.logging.lclogaggregation) echo '0 Disabled 1 Enabled' ;;
	idrac.logging.selbuffertype) echo '0 Circular 1 Linear' ;;
	idrac.logging.seloemeventfilterenable) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.autoconfig) echo '0 Disabled 1 2' ;;
	idrac.nic.autodetect) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.autoneg) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.discoverylldp) echo '0 Disabled 1 Dedicated 2 SharedLOM 3 Enabled' ;;
	idrac.nic.dnsdomainfromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.dnsdomainnamefromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.dnsregister) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.duplex) echo '0 Half 1 Full' ;;
	idrac.nic.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.failover) echo '0 None 1 LOM1 2 LOM2 3 LOM3 4 LOM4 5 All 6 LOM5 7 LOM6' ;;
	idrac.nic.pingenable) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.poweronocpslot1ins5) echo '0 Off 1 On' ;;
	idrac.nic.selection) echo '1 Dedicated 2 LOM1 3 LOM2 4 LOM3 5 LOM4 6 LOM5 7 LOM6' ;;
	idrac.nic.speed) echo '0 10 1 100 2 1000 3 2500 4 10000 5 20000 6 25000 7 40000 8 50000 9 100000' ;;
	idrac.nic.topologylldp) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.vlanenable) echo '0 Disabled 1 Enabled' ;;
	idrac.nic.vlanport) echo '0 Both 1 2' ;;
	idrac.nicstatic.dnsdomainfromdhcp) echo '0 Disabled 1 Enabled' ;;
	idrac.ntpconfiggroup.ntp1securitytype) echo '0 Disabled 1 MD5 2 SHA1' ;;
	idrac.ntpconfiggroup.ntp2securitytype) echo '0 Disabled 1 MD5 2 SHA1' ;;
	idrac.ntpconfiggroup.ntp3securitytype) echo '0 Disabled 1 MD5 2 SHA1' ;;
	idrac.ntpconfiggroup.ntpenable) echo '0 Disabled 1 Enabled' ;;
	idrac.os-bmc.adminstate) echo '0 Disabled 1 Enabled' ;;
	idrac.os-bmc.ptcapability) echo '0 1 Capable 2 Unavailable' ;;
	idrac.os-bmc.ptmode) echo '0 lom-p2p 1 usb-p2p' ;;
	idrac.os-bmc.usbnicipv4addresssupport) echo '0 Disabled 1 Enabled' ;;
	idrac.pcievdm.broadcastenable) echo '0 Disabled 1 Enabled' ;;
	idrac.pcievdm.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.pcievdm.nvmehotplugenable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.airfiltercapable) echo '0 NoFilter 1 PassiveFilter 2 ActiveFilter' ;;
	idrac.platformcapability.ashraecapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.backuprestorecapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.coolingconfigenable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.cupscapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.extendedinfocapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.frontpanelcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.frontpanelusbcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.frontportusbconfiguration) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.gridcurrentcapcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.lcdcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.livescancapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.nicrotcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.nicvlancapable) echo '0 None 1 Dedicated 2 SharedLOM 3 Both' ;;
	idrac.platformcapability.nvidiagpubaseboardmgtenable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.pdbpresence) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.pmbuscapablepsu) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.powerbudgetcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.powermonitoringcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.sdpmcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.serialdb9pcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.serverallocationcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.sharedstoragecapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.systemcurrentcapcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.telco-edgecapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.thermalmanagedbyparent) echo '0 SelfPowered 1 PoweredByChassis 255 Unknown' ;;
	idrac.platformcapability.userpowercapboundcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.userpowercapcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.vflashcapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.wificapable) echo '0 Disabled 1 Enabled' ;;
	idrac.platformcapability.witnesscapable) echo '0 Disabled 1 Enabled' ;;
	idrac.racadm.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.redfish.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.redfish.idracrebootinprogress) echo '0 False 1 True' ;;
	idrac.redfish.numericdynamicsegmentsenable) echo '0 Disabled 1 Enabled' ;;
	idrac.redfisheventing.eventenable) echo '0 Disabled 1 Enabled' ;;
	idrac.redfisheventing.ignorecertificateerrors) echo '0 No 1 Yes' ;;
	idrac.remotehosts.connectionencryption) echo '0 None 1 SSL/TLS 2 STARTTLS' ;;
	idrac.remotehosts.smtpauthentication) echo '0 Disabled 1 Enabled' ;;
	idrac.rfs.attachmode) echo '0 Detached 1 Attached 2' ;;
	idrac.rfs.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.rfs.ignorecertwarning) echo '0 No 1 Yes' ;;
	idrac.rfs.mediaattachstate) echo '0 Detached 1 Attached' ;;
	idrac.rfs.status) echo '0 Done 1 Pending 2 Error' ;;
	idrac.rfs.writeprotected) echo '0 1' ;;
	idrac.scep.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.scep.enrollmentaction) echo '0 Halt 1 Monitor 2 Enroll' ;;
	idrac.scep.enrollmentstatus) echo '0 None 1 Enrolling 2 Enrolled 3 Error' ;;
	idrac.securedefaultpassword.forcechangepassword) echo '0 False 1 True' ;;
	idrac.security.csrkeysize) echo '2048 4096' ;;
	idrac.security.fipsmode) echo '0 Disabled 1 Enabled' ;;
	idrac.security.ipmibootstrapcredentialprovisioning) echo '0 Disabled 1 Enabled' ;;
	idrac.security.minimumpasswordscore) echo '0 1 2 3' ;;
	idrac.security.passwordrequirenumbers) echo '0 Disabled 1 Enabled' ;;
	idrac.security.passwordrequiresymbols) echo '0 Disabled 1 Enabled' ;;
	idrac.security.passwordrequireuppercase) echo '0 Disabled 1 Enabled' ;;
	idrac.security.reservedaccountuserenable) echo '0 Disabled 1 Enabled' ;;
	idrac.securitycertificate.certificatetype) echo '1 WEBSERVER_SSL 2 LDAP_CA 3 CUSTOM_SIGNING_CERT 4 CLIENT_TRUST_CERT 5 FACTORY_IDENTITY_CERT 6 SEKM_SSL_CERT 7 KMS_SERVER_CA 8 RSYSLOG_SERVER_CA 9 BIOS_HTTPS_BOOT_CERT 10 SMARTCARD_USER 11 SMARTCARD_CA 12 RSA_CA 13 SCEP_CA 14 SCV_INVENTORY_CERT 15 DEL_AUTH_HTTPS 17 REMOTE_SYSLOG_CLIENT 18 REMOTE_SYSLOG_SERVER 21 IEEE802_CLIENT_CERT 22 IEEE802_SERVER_CA_CERT 24 IEEE802_CUSTOM_SIGNING_CERT 25 TPM_IDEVID 26 TPM_IAK 27 TPM_EK_ECC 28 TPM_EK_RSA 31 SCV_FW_INVENTORY' ;;
	idrac.securitycertificate.expirystate) echo '0 Valid 1 AboutToExpire 2 Expired' ;;
	idrac.sekm.autosecure) echo '1 Disabled 2 Enabled' ;;
	idrac.sekm.ilkmstatus) echo '1 Disabled 2 Enabled' ;;
	idrac.sekm.ipaddressincertificate) echo '0 Disabled 1 Enabled' ;;
	idrac.sekm.keyalgorithm) echo '1 AES-256' ;;
	idrac.sekm.keycachingpolicy) echo '1 2' ;;
	idrac.sekm.keycachingstatus) echo '1 2' ;;
	idrac.sekm.keycreationpolicy) echo '1' ;;
	idrac.sekm.kmskeypurgepolicy) echo '1 2' ;;
	idrac.sekm.rekeymode) echo '1 2 3' ;;
	idrac.sekm.securitymode) echo '1 None 2 iLKM 3 SEKM' ;;
	idrac.sekm.sekmstatus) echo '0 Disabled 1 Enabled 2 Failed 3' ;;
	idrac.sekm.supportstatus) echo '0 Unknown 1 NotInstalled 2 Installed 3 NoLicense 4 LicenseOnly' ;;
	idrac.sekm.vosssdpmreducedrebootsupport) echo '1 Supported' ;;
	idrac.sekmcert.certificatestatus) echo '0 NOT_PENDING 1 REQUEST_IN_PROGRESS 2 PENDING 3 FAILED' ;;
	idrac.serial.baudrate) echo '9600 19200 57600 115200' ;;
	idrac.serial.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.serial.flowcontrol) echo '0 None 1 RTS/CTS' ;;
	idrac.serial.noauth) echo '0 Disabled 1 Enabled' ;;
	idrac.serialcapture.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.serialredirection.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.serverboot.bootonce) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.chipsetsatasupported) echo '0 Disabled 1 Enabled 2 NA' ;;
	idrac.servicemodule.enableosmetricinjection) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.hostsnmpalert) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.hostsnmpget) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.hostsnmpomsaalert) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.idrachardreset) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.idracssolauncher) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.lclreplication) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.omsapresence) echo '0 1 Present 2 NA' ;;
	idrac.servicemodule.osinfo) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.servicemoduleenable) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.servicemodulestate) echo '0 1 Running 2 3' ;;
	idrac.servicemodule.softwareraidsupported) echo '0 Disabled 1 Enabled 2 NA' ;;
	idrac.servicemodule.sseventcorrelation) echo '0 Disabled 1 Enabled 2 NA' ;;
	idrac.servicemodule.watchdogrecoveryaction) echo '0 None 1 Reboot 2 Poweroff 3 Powercycle' ;;
	idrac.servicemodule.watchdogstate) echo '0 Disabled 1 Enabled' ;;
	idrac.servicemodule.wmiinfo) echo '0 Disabled 1 Enabled' ;;
	idrac.smartcard.smartcardcrlenable) echo '0 Disabled 1 Enabled' ;;
	idrac.smartcard.smartcardlogonenable) echo '0 Disabled 1 Enabled 2' ;;
	idrac.smartcard.smartcardocspenable) echo '0 Disabled 1 Enabled' ;;
	idrac.snmp.agentenable) echo '0 Disabled 1 Enabled' ;;
	idrac.snmp.snmpprotocol) echo '0 All 1 SNMPv3' ;;
	idrac.snmp.trapformat) echo '0 SNMPv1 1 SNMPv2 2 SNMPv3' ;;
	idrac.snmpalert.1.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.2.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.3.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.4.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.5.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.6.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.7.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.8.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmpalert.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv4.1.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv4.2.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv4.3.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv4.4.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv4.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv6.1.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv6.2.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv6.3.state) echo '0 Disabled 1 Enabled' ;;
	idrac.snmptrapipv6.state) echo '0 Disabled 1 Enabled' ;;
	idrac.ssh.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.ssh.rotatehostkey) echo '0 Done 1 Initiate' ;;
	idrac.supportassist.defaultprotocol) echo '1 NFS 2 CIFS 3 HTTP 4 HTTPS 5 TFTP 6 FTP' ;;
	idrac.supportassist.emailoptin) echo '0 No 1 Yes' ;;
	idrac.supportassist.eventbasedautocollection) echo '0 Disabled 1 Enabled' ;;
	idrac.supportassist.filterautocollections) echo '0 No 1 Yes' ;;
	idrac.supportassist.hostosproxyconfigured) echo '0 No 1 Yes' ;;
	idrac.supportassist.nativeoslogscollectionsupported) echo '0 None 1 FullReport 2 FilteredReport 3 Both' ;;
	idrac.supportassist.preferredlanguage) echo '0 English 1 German 2 French 3 Japanese 4 Spanish 5' ;;
	idrac.supportassist.prosupportplusrecommendationsreport) echo '0 Disabled 1 Enabled' ;;
	idrac.supportassist.requesttechnicianforpartsdispatch) echo '0 No 1 Yes' ;;
	idrac.supportassist.supportassistenablestate) echo '0 Disabled 1 Enabled' ;;
	idrac.switchconnectionview.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.syslog.powerlogenable) echo '0 Disabled 1 Enabled' ;;
	idrac.syslog.secureclientauth) echo '0 Anonymous 1 Certificate' ;;
	idrac.syslog.securesyslogenable) echo '0 Disabled 1 Enabled' ;;
	idrac.syslog.syslogenable) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetry.enablemetricinjection) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetry.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetryaggregationmetrics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrycpumemmetrics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrycpuregisters.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrycpusensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetryfansensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetryfcportstatistics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetryfcsensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetryfpgasensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrygpumetrics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrygpustatistics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrymemorysensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrynicsensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrynicstatistics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrynvmesmartdata.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrypowermetrics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrypowerstatistics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrypsumetrics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrysensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetryseriallog.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrystoragedisksmartdata.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrystoragesensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrysystemusage.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrythermalmetrics.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.telemetrythermalsensor.enabletelemetry) echo '0 Disabled 1 Enabled' ;;
	idrac.update.fwupdatetftpenable) echo '0 Disabled 1 Enabled' ;;
	idrac.usb.configurationxml) echo '0 Disabled 1 2 Enabled 3' ;;
	idrac.usb.managementportmode) echo '0' ;;
	idrac.usb.portstatus) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.1.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.1.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.1.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.1.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.1.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.10.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.10.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.10.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.10.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.10.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.11.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.11.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.11.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.11.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.11.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.12.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.12.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.12.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.12.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.12.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.13.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.13.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.13.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.13.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.13.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.14.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.14.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.14.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.14.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.14.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.15.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.15.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.15.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.15.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.15.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.16.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.16.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.16.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.16.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.16.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.2.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.2.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.2.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.2.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.2.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.3.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.3.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.3.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.3.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.3.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.4.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.4.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.4.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.4.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.4.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.5.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.5.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.5.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.5.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.5.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.6.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.6.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.6.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.6.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.6.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.7.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.7.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.7.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.7.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.7.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.8.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.8.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.8.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.8.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.8.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.9.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.9.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.9.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.9.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.9.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.users.authenticationprotocol) echo '0 None 1 MD5 2 SHA 3 SHA-384 4 SHA-512' ;;
	idrac.users.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.enablesnmpv3passphrase) echo '0 Disabled 1 Enabled' ;;
	idrac.users.ipmilanprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.ipmiserialprivilege) echo '2 User 3 Operator 4 Administrator 15' ;;
	idrac.users.privacyprotocol) echo '0 None 1 DES 2 AES 3 AES-256' ;;
	idrac.users.protocolenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.rsasecurid2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.simple2fa) echo '0 Disabled 1 Enabled' ;;
	idrac.users.solenable) echo '0 Disabled 1 Enabled' ;;
	idrac.users.useemail) echo '0 Disabled 1 Enabled' ;;
	idrac.users.usesms) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.accessprivilege) echo '0 1 2' ;;
	idrac.virtualconsole.attachstate) echo '0 Detached 1 Attached 2 Auto-attach' ;;
	idrac.virtualconsole.closeunusedport) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.crashvideocaptureenable) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.encryptenable) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.localdisable) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.localvideo) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.plugintype) echo '0 ActiveX 1 Java 2 HTML5 3 eHTML5' ;;
	idrac.virtualconsole.timeoutenable) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualconsole.webredirect) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualmedia.attached) echo '0 Detached 1 Attached 2 AutoAttach' ;;
	idrac.virtualmedia.bootonce) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualmedia.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualmedia.encryptenable) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualmedia.floppyemulation) echo '0 Disabled 1 Enabled' ;;
	idrac.virtualmedia.keyenable) echo '0 Disabled 1 Enabled' ;;
	idrac.vncserver.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.vncserver.lowerencryptionbitlength) echo '0 Disabled 1 Enabled' ;;
	idrac.vncserver.sslencryptionbitlength) echo '0 Disabled 1 2 3 4' ;;
	idrac.webserver.blockhttpport) echo '0 Disabled 1 Enabled' ;;
	idrac.webserver.enable) echo '0 Disabled 1 Enabled' ;;
	idrac.webserver.hostheadercheck) echo '0 Disabled 1 Enabled' ;;
	idrac.webserver.http2enable) echo '0 Disabled 1 Enabled' ;;
	idrac.webserver.httpsredirection) echo '0 Disabled 1 Enabled' ;;
	idrac.webserver.lowerencryptionbitlength) echo '0 Disabled 1 Enabled' ;;
	idrac.webserver.sslencryptionbitlength) echo '0 Auto-Negotiate 1 2 3' ;;
	idrac.webserver.titlebaroption) echo '1 Auto 2 3 4 5 6 Custom' ;;
	idrac.webserver.tlsprotocol) echo '1 2 3 4' ;;
	nic.devicelevelconfig.1.partitionstateinterpretation) echo 'Fixed Variable' ;;
	nic.devicelevelconfig.1.rdmaprotocolsupport) echo 'RoCE' ;;
	nic.devicelevelconfig.1.vfallocbasis) echo 'Device Port' ;;
	nic.devicelevelconfig.1.virtualizationmode) echo 'NONE SRIOV' ;;
	nic.devicelevelconfig.2.partitionstateinterpretation) echo 'Fixed Variable' ;;
	nic.devicelevelconfig.2.rdmaprotocolsupport) echo 'RoCE' ;;
	nic.devicelevelconfig.2.vfallocbasis) echo 'Device Port' ;;
	nic.devicelevelconfig.2.virtualizationmode) echo 'NONE SRIOV' ;;
	nic.devicelevelconfig.evbmodessupport) echo 'Multi' ;;
	nic.iscsifirsttgtparams.1.connectfirsttgt) echo 'Disabled Enabled' ;;
	nic.iscsifirsttgtparams.2.connectfirsttgt) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.1.chapauthenable) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.1.chapmutualauth) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.1.ipver) echo 'IPv4 None' ;;
	nic.iscsigenparams.1.iscsitgtboot) echo 'Disabled Enabled OneTimeDisabled' ;;
	nic.iscsigenparams.1.iscsiviadhcp) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.1.tcpipviadhcp) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.2.chapauthenable) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.2.chapmutualauth) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.2.ipver) echo 'IPv4 None' ;;
	nic.iscsigenparams.2.iscsitgtboot) echo 'Disabled Enabled OneTimeDisabled' ;;
	nic.iscsigenparams.2.iscsiviadhcp) echo 'Disabled Enabled' ;;
	nic.iscsigenparams.2.tcpipviadhcp) echo 'Disabled Enabled' ;;
	nic.nicconfig.1.bootretrycnt) echo 'NoRetry 1Retry 2Retries 3Retries 4Retries 5Retries 6Retries IndefiniteRetries' ;;
	nic.nicconfig.1.bootstraptype) echo 'Int19h' ;;
	nic.nicconfig.1.legacybootproto) echo 'NONE PXE iSCSI PXEWithoutFailOver iSCSIWithoutFailOver' ;;
	nic.nicconfig.1.lnkspeed) echo 'AutoNeg' ;;
	nic.nicconfig.1.vlanmode) echo 'Disabled Enabled' ;;
	nic.nicconfig.1.wakeonlan) echo 'Disabled Enabled' ;;
	nic.nicconfig.1.wakeonlanlnkspeed) echo '1Gbps' ;;
	nic.nicconfig.2.bootretrycnt) echo 'NoRetry 1Retry 2Retries 3Retries 4Retries 5Retries 6Retries IndefiniteRetries' ;;
	nic.nicconfig.2.bootstraptype) echo 'Int19h' ;;
	nic.nicconfig.2.legacybootproto) echo 'NONE PXE iSCSI PXEWithoutFailOver iSCSIWithoutFailOver' ;;
	nic.nicconfig.2.lnkspeed) echo 'AutoNeg' ;;
	nic.nicconfig.2.vlanmode) echo 'Disabled Enabled' ;;
	nic.nicconfig.2.wakeonlan) echo 'Disabled Enabled' ;;
	nic.nicconfig.2.wakeonlanlnkspeed) echo '1Gbps' ;;
	nic.nicconfig.bootretrycnt) echo 'NoRetry 1Retry 2Retries 3Retries 4Retries 5Retries 6Retries' ;;
	nic.nicconfig.bootstraptype) echo 'AutoDetect BBS Int18h Int19h' ;;
	nic.vndrconfigpage.1.forwarderrorcorrection) echo 'Disabled FC RS Auto' ;;
	nic.vndrconfigpage.1.linkstatus) echo 'Disconnected Connected' ;;
	nic.vndrconfigpage.1.nicmode) echo 'Disabled Enabled' ;;
	nic.vndrconfigpage.1.permittotalportshutdown) echo 'Disabled Enabled' ;;
	nic.vndrconfigpage.1.rdmanicmodeonport) echo 'Enabled' ;;
	nic.vndrconfigpage.1.snapistate) echo 'Disabled Enabled' ;;
	nic.vndrconfigpage.2.forwarderrorcorrection) echo 'Disabled FC RS Auto' ;;
	nic.vndrconfigpage.2.linkstatus) echo 'Disconnected Connected' ;;
	nic.vndrconfigpage.2.nicmode) echo 'Disabled Enabled' ;;
	nic.vndrconfigpage.2.permittotalportshutdown) echo 'Disabled Enabled' ;;
	nic.vndrconfigpage.2.rdmanicmodeonport) echo 'Enabled' ;;
	nic.vndrconfigpage.2.snapistate) echo 'Disabled Enabled' ;;
	esac
}
# END GENERATED SET VALUES

_orac () {
	local cur prev cmd_name w
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	cmd_name=""
	for w in "${COMP_WORDS[@]:1:COMP_CWORD-1}"; do
		case "${w}" in
		-*) ;;
		*)
			cmd_name="${w}"
			break
		;;
		esac
	done

	opts="help arp autoupdatescheduler bioscert biosscan clearasrscreen clearpending closessn clrsel config getconfig coredump coredumpdelete driverpack debug eventfilters exposeisminstallertohost fwupdate get gethostnetworkinterfaces getled getniccfg getraclog getractime getremoteservicesstatus getsel getsensorinfo getssninfo getsvctag getsysinfo gettracelog getuscversion getversion groupmanager httpsbootcert ifconfig inlettemphistory idmconfig krbkeytabupload license lclog localConRedirDisable frontpanelerror netstat ping ping6 plugin racdump racreset racresetcfg recover remoteimage rollback sekm serialcapture serveraction set setled setniccfg sshpkauth sslcertchallenge sslcertupload sslcertdelete sslcertdownload sslcertview sslcsrgen sslencryptionstrength sslkeyupload sslresetcfg supportassist swinventory switchconnection systemerase testemail testrsyslogconnection testtrap testalert traceroute traceroute6 techsupreport usercertupload usercertview vflashpartition vflashsd vmdisconnect raid storage hwinventory nicstatistics infinibandstatistics fcstatistics networktransceiverstatistics update jobqueue sensorsettings diagnostics systemperfstatistics ackdriveremoval bezelfilter cmreset coredumpexport heatermanager pcieslotview remoteimage2 setgpu witnessnodepoweraction BIOS iDRAC LifecycleController Nic Storage System FC InfiniBand"

	iDRAC_OPTS="iDRAC iDRAC.ActiveDirectory iDRAC.ActiveDirectory.AuthTimeout iDRAC.ActiveDirectory.CertValidationEnable iDRAC.ActiveDirectory.DCLookupByUserDomain iDRAC.ActiveDirectory.DCLookupDomainName iDRAC.ActiveDirectory.DCLookupEnable iDRAC.ActiveDirectory.DomainController1 iDRAC.ActiveDirectory.DomainController2 iDRAC.ActiveDirectory.DomainController3 iDRAC.ActiveDirectory.Enable iDRAC.ActiveDirectory.GCLookupEnable iDRAC.ActiveDirectory.GCRootDomain iDRAC.ActiveDirectory.GlobalCatalog1 iDRAC.ActiveDirectory.GlobalCatalog2 iDRAC.ActiveDirectory.GlobalCatalog3 iDRAC.ActiveDirectory.RacDomain iDRAC.ActiveDirectory.RacName iDRAC.ActiveDirectory.Schema iDRAC.ActiveDirectory.SSOEnable iDRAC.ADGroup iDRAC.ASRConfig.Enable iDRAC.Autodiscovery iDRAC.Autodiscovery.EnableIPChangeAnnounce iDRAC.Autodiscovery.EnableIPChangeAnnounceFromDHCP iDRAC.Autodiscovery.EnableIPChangeAnnounceFrommDNS iDRAC.Autodiscovery.EnableIPChangeAnnounceFromUnicastDNS iDRAC.Autodiscovery.SendTestAnnouncement iDRAC.Autodiscovery.UnsolicitedIPChangeAnnounceRate iDRAC.AutoOSLockGroup iDRAC.AutoOSLockGroup.AutoOSLockState iDRAC.CurrentIPv4 iDRAC.CurrentIPv6 iDRAC.CurrentNIC iDRAC.DefaultCredentialMitigationConfigGroup.DefaultCredentialMitigation iDRAC.DelegatedAuth iDRAC.DelegatedAuth.iDRAC.DelegatedAuth.1 iDRAC.DelegatedAuth.iDRAC.DelegatedAuth.2 iDRAC.DelegatedAuthConfig.JwkCacheTime iDRAC.EmailAlert iDRAC.EmailAlert.iDRAC.EmailAlert.1 iDRAC.EmailAlert.iDRAC.EmailAlert.2 iDRAC.EmailAlert.iDRAC.EmailAlert.3 iDRAC.EmailAlert.iDRAC.EmailAlert.4 iDRAC.GroupManager iDRAC.GroupManager.Status iDRAC.GUI iDRAC.GUI.SecurityPolicyMessage iDRAC.Info iDRAC.IntegratedDatacenter.DiscoveryEnable iDRAC.InventoryHash iDRAC.InventoryHash.HashCalculationInterval iDRAC.IOIDOpt iDRAC.IOIDOpt.InitiatorPersistencePolicy iDRAC.IOIDOpt.IOIDOptEnable iDRAC.IOIDOpt.PersistencePolicyOnPartReplacement iDRAC.IOIDOpt.StorageTargetPersistencePolicy iDRAC.IOIDOpt.VirtualAddressPersistencePolicyAuxPwrd iDRAC.IOIDOpt.VirtualAddressPersistencePolicyNonAuxPwrd iDRAC.IPBlocking iDRAC.IPBlocking.BlockEnable iDRAC.IPBlocking.FailCount iDRAC.IPBlocking.FailWindow iDRAC.IPBlocking.PenaltyTime iDRAC.IPBlocking.RangeAddr iDRAC.IPBlocking.RangeAddr2 iDRAC.IPBlocking.RangeAddr3 iDRAC.IPBlocking.RangeAddr4 iDRAC.IPBlocking.RangeAddr5 iDRAC.IPBlocking.RangeEnable iDRAC.IPBlocking.RangeEnable2 iDRAC.IPBlocking.RangeEnable3 iDRAC.IPBlocking.RangeEnable4 iDRAC.IPBlocking.RangeEnable5 iDRAC.IPBlocking.RangeMask iDRAC.IPBlocking.RangeMask2 iDRAC.IPBlocking.RangeMask3 iDRAC.IPBlocking.RangeMask4 iDRAC.IPBlocking.RangeMask5 iDRAC.IPMILan iDRAC.IPMILan.AlertEnable iDRAC.IPMILan.CommunityName iDRAC.IPMILan.Enable iDRAC.IPMILan.EncryptionKey iDRAC.IPMILan.PrivLimit iDRAC.IPMISerial iDRAC.IPMISOL iDRAC.IPMISOL.AccumulateInterval iDRAC.IPMISOL.BaudRate iDRAC.IPMISOL.Enable iDRAC.IPMISOL.MinPrivilege iDRAC.IPMISOL.SendThreshold iDRAC.IPv4 iDRAC.IPv4.Address iDRAC.IPv4.DHCPEnable iDRAC.IPv4.DNS1 iDRAC.IPv4.DNS2 iDRAC.IPv4.DNSFromDHCP iDRAC.IPv4.Enable iDRAC.IPv4.Gateway iDRAC.IPv4.Netmask iDRAC.IPv4Static iDRAC.IPv4Static.Address iDRAC.IPv4Static.DNS1 iDRAC.IPv4Static.DNS2 iDRAC.IPv4Static.DNSFromDHCP iDRAC.IPv4Static.Gateway iDRAC.IPv4Static.Netmask iDRAC.IPv6 iDRAC.IPv6.Address1 iDRAC.IPv6.AutoConfig iDRAC.IPv6.DNS1 iDRAC.IPv6.DNS2 iDRAC.IPv6.DNSFromDHCP6 iDRAC.IPv6.Enable iDRAC.IPv6.Gateway iDRAC.IPv6.PrefixLength iDRAC.IPv6Static iDRAC.IPv6Static.Address1 iDRAC.IPv6Static.DNS1 iDRAC.IPv6Static.DNS2 iDRAC.IPv6Static.DNSFromDHCP6 iDRAC.IPv6Static.Gateway iDRAC.IPv6Static.PrefixLength iDRAC.IPv6URL iDRAC.KMS iDRAC.LDAP iDRAC.LDAP.BaseDN iDRAC.LDAP.BindDN iDRAC.LDAP.BindPassword iDRAC.LDAP.CertValidationEnable iDRAC.LDAP.Enable iDRAC.LDAP.GroupAttribute iDRAC.LDAP.GroupAttributeIsDN iDRAC.LDAP.Port iDRAC.LDAP.SearchFilter iDRAC.LDAP.Server iDRAC.LDAP.UserAttribute iDRAC.LDAPRoleGroup iDRAC.LDAPRoleGroup.1 iDRAC.LDAPRoleGroup.2 iDRAC.LDAPRoleGroup.3 iDRAC.LDAPRoleGroup.4 iDRAC.LDAPRoleGroup.5 iDRAC.LocalSecurity iDRAC.LocalSecurity.LocalConfig iDRAC.LocalSecurity.PrebootConfig iDRAC.Lockdown iDRAC.Lockdown.SystemLockdown iDRAC.Logging iDRAC.Logging.SELBufferType iDRAC.Logging.SELOEMEventFilterEnable iDRAC.NIC iDRAC.NIC.AutoConfig iDRAC.NIC.AutoDetect iDRAC.NIC.Autoneg iDRAC.NIC.DedicatedNICScanTime iDRAC.NIC.DiscoveryLLDP iDRAC.NIC.DNSDomainFromDHCP iDRAC.NIC.DNSDomainName iDRAC.NIC.DNSDomainNameFromDHCP iDRAC.NIC.DNSRacName iDRAC.NIC.DNSRegister iDRAC.NIC.DNSRegisterInterval iDRAC.NIC.Duplex iDRAC.NIC.Enable iDRAC.NIC.Failover iDRAC.NIC.MACAddress iDRAC.NIC.MTU iDRAC.NIC.PowerOnOCPSlot1InS5 iDRAC.NIC.Selection iDRAC.NIC.SharedNICScanTime iDRAC.NIC.Speed iDRAC.NIC.SwitchConnection iDRAC.NIC.SwitchPortConnection iDRAC.NIC.TopologyLldp iDRAC.NIC.VLanEnable iDRAC.NIC.VLanID iDRAC.NIC.VLanPort iDRAC.NIC.VLanPriority iDRAC.NICStatic iDRAC.NICStatic.DNSDomainFromDHCP iDRAC.NICStatic.DNSDomainName iDRAC.NTPConfigGroup iDRAC.NTPConfigGroup.NTP1 iDRAC.NTPConfigGroup.NTP1SecurityKey iDRAC.NTPConfigGroup.NTP1SecurityKeyNumber iDRAC.NTPConfigGroup.NTP2 iDRAC.NTPConfigGroup.NTP2SecurityKey iDRAC.NTPConfigGroup.NTP2SecurityKeyNumber iDRAC.NTPConfigGroup.NTP2SecurityType iDRAC.NTPConfigGroup.NTP3 iDRAC.NTPConfigGroup.NTP3SecurityKey iDRAC.NTPConfigGroup.NTP3SecurityKeyNumber iDRAC.NTPConfigGroup.NTP3SecurityType iDRAC.NTPConfigGroup.NTPEnable iDRAC.NTPConfigGroup.NTPMaxDist iDRAC.OS-BMC iDRAC.OS-BMC.AdminState iDRAC.OS-BMC.OsIpAddress iDRAC.OS-BMC.PTCapability iDRAC.OS-BMC.PTMode iDRAC.OS-BMC.UsbNicIpAddress iDRAC.OS-BMC.UsbNicIpv4AddressSupport iDRAC.OS-BMC.UsbNicIpV6Address iDRAC.OS-BMC.UsbNicULA iDRAC.PCIeVDM iDRAC.PCIeVDM.Enable iDRAC.PlatformCapability iDRAC.PMLicensing iDRAC.PMLicensing.Generation iDRAC.Racadm iDRAC.Racadm.Enable iDRAC.Racadm.MaxSessions iDRAC.Racadm.Timeout iDRAC.Redfish iDRAC.Redfish.Enable iDRAC.RedfishEventing iDRAC.RedfishEventing.DeliveryRetryAttempts iDRAC.RedfishEventing.DeliveryRetryIntervalInSeconds iDRAC.RedfishEventing.IgnoreCertificateErrors iDRAC.RemoteHosts iDRAC.RemoteHosts.ConnectionEncryption iDRAC.RemoteHosts.MessageSubjectPrefix iDRAC.RemoteHosts.SenderEmail iDRAC.RemoteHosts.SMTPAuthentication iDRAC.RemoteHosts.SMTPPassword iDRAC.RemoteHosts.SMTPPort iDRAC.RemoteHosts.SMTPServerIPAddress iDRAC.RemoteHosts.SMTPUserName iDRAC.RFS iDRAC.RFS.AttachMode iDRAC.RFS.Enable iDRAC.RFS.IgnoreCertWarning iDRAC.RFS.Image iDRAC.RFS.MediaAttachState iDRAC.RFS.Password iDRAC.RFS.Status iDRAC.RFS.User iDRAC.RFS.WriteProtected iDRAC.RSASecurID2FA iDRAC.SCEP iDRAC.SecureDefaultPassword iDRAC.SecureDefaultPassword.ForceChangePassword iDRAC.Security iDRAC.Security.CsrCommonName iDRAC.Security.CsrCountryCode iDRAC.Security.CsrEmailAddr iDRAC.Security.CsrKeySize iDRAC.Security.CsrLocalityName iDRAC.Security.CsrOrganizationName iDRAC.Security.CsrOrganizationUnit iDRAC.Security.CsrStateName iDRAC.Security.CsrSubjectAltName iDRAC.Security.FIPSMode iDRAC.Security.FIPSVersion iDRAC.Security.MinimumPasswordScore iDRAC.Security.PasswordMinimumLength iDRAC.Security.PasswordRequireNumbers iDRAC.Security.PasswordRequireRegex iDRAC.Security.PasswordRequireSymbols iDRAC.Security.PasswordRequireUpperCase iDRAC.SecurityCertificate iDRAC.SEKM iDRAC.SEKMCert iDRAC.Serial iDRAC.SerialCapture iDRAC.SerialRedirection iDRAC.SerialRedirection.Enable iDRAC.SerialRedirection.QuitKey iDRAC.ServerBoot iDRAC.ServerBoot.BootOnce iDRAC.ServerBoot.FirstBootDevice iDRAC.ServiceModule iDRAC.ServiceModule.ChipsetSATASupported iDRAC.ServiceModule.HostSNMPAlert iDRAC.ServiceModule.HostSNMPGet iDRAC.ServiceModule.HostSNMPOMSAAlert iDRAC.ServiceModule.iDRACHardReset iDRAC.ServiceModule.iDRACSSOLauncher iDRAC.ServiceModule.LCLReplication iDRAC.ServiceModule.OMSAPresence iDRAC.ServiceModule.OSInfo iDRAC.ServiceModule.ServiceModuleEnable iDRAC.ServiceModule.ServiceModuleState iDRAC.ServiceModule.ServiceModuleVersion iDRAC.ServiceModule.SSEventCorrelation iDRAC.ServiceModule.WatchdogRecoveryAction iDRAC.ServiceModule.WatchdogResetTime iDRAC.ServiceModule.WatchdogState iDRAC.ServiceModule.WMIInfo iDRAC.SmartCard iDRAC.SmartCard.SmartCardCRLEnable iDRAC.SmartCard.SmartCardLogonEnable iDRAC.SNMP iDRAC.SNMP.AgentCommunity iDRAC.SNMP.AgentEnable iDRAC.SNMP.AlertPort iDRAC.SNMP.DiscoveryPort iDRAC.SNMP.EngineID iDRAC.SNMP.SNMPProtocol iDRAC.SNMP.TrapFormat iDRAC.SNMPAlert iDRAC.SNMPAlert.1 iDRAC.SNMPAlert.2 iDRAC.SNMPAlert.3 iDRAC.SNMPAlert.4 iDRAC.SNMPAlert.5 iDRAC.SNMPAlert.6 iDRAC.SNMPAlert.7 iDRAC.SNMPAlert.8 iDRAC.SNMPTrapIPv4 iDRAC.SNMPTrapIPv4.1 iDRAC.SNMPTrapIPv4.2 iDRAC.SNMPTrapIPv4.3 iDRAC.SNMPTrapIPv4.4 iDRAC.SNMPTrapIPv6 iDRAC.SNMPTrapIPv6.1 iDRAC.SNMPTrapIPv6.2 iDRAC.SNMPTrapIPv6.3 iDRAC.SSH iDRAC.SSH.Banner iDRAC.SSH.Enable iDRAC.SSH.MaxSessions iDRAC.SSH.Port iDRAC.SSH.Timeout iDRAC.SSHCrypto iDRAC.SSHCrypto.Ciphers iDRAC.SSHCrypto.HostKeyAlgorithms iDRAC.SSHCrypto.KexAlgorithms iDRAC.SSHCrypto.MACs iDRAC.SupportAssist iDRAC.SupportAssist.DefaultIPAddress iDRAC.SupportAssist.DefaultPassword iDRAC.SupportAssist.DefaultProtocol iDRAC.SupportAssist.DefaultProtocolPort iDRAC.SupportAssist.DefaultShareName iDRAC.SupportAssist.DefaultUserName iDRAC.SupportAssist.DefaultWorkgroupName iDRAC.SupportAssist.EmailOptIn iDRAC.SupportAssist.EventBasedAutoCollection iDRAC.SupportAssist.FilterAutoCollections iDRAC.SupportAssist.HostOSProxyAddress iDRAC.SupportAssist.HostOSProxyConfigured iDRAC.SupportAssist.HostOSProxyPassword iDRAC.SupportAssist.HostOSProxyPort iDRAC.SupportAssist.HostOSProxyUserName iDRAC.SupportAssist.iDRACFirstPowerUpDateTime iDRAC.SupportAssist.NativeOSLogsCollectionSupported iDRAC.SupportAssist.PreferredLanguage iDRAC.SupportAssist.ProSupportPlusRecommendationsReport iDRAC.SupportAssist.RegistrationID iDRAC.SupportAssist.RequestTechnicianForPartsDispatch iDRAC.SupportAssist.SupportAssistEnableState iDRAC.SwitchConnectionView iDRAC.SwitchConnectionView.Enable iDRAC.SysInfo iDRAC.SysInfo.LocalConsoleLockOut iDRAC.SysInfo.POSTCode iDRAC.SysInfo.SystemRev iDRAC.SysLog iDRAC.Telemetry iDRAC.Telemetry.Port iDRAC.Telemetry.PowerLogEnable iDRAC.Telemetry.PowerLogInterval iDRAC.Telemetry.Server1 iDRAC.Telemetry.Server2 iDRAC.Telemetry.Server3 iDRAC.Telemetry.SysLogEnable iDRAC.TelemetryAggregationMetrics iDRAC.TelemetryCPUMemMetrics iDRAC.TelemetryCPURegisters iDRAC.TelemetryCPUSensor iDRAC.TelemetryFanSensor iDRAC.TelemetryFCPortStatistics iDRAC.TelemetryFCSensor iDRAC.TelemetryFPGASensor iDRAC.TelemetryGPUMetrics iDRAC.TelemetryGPUStatistics iDRAC.TelemetryMemorySensor iDRAC.TelemetryNICSensor iDRAC.TelemetryNICStatistics iDRAC.TelemetryNVMeSMARTData iDRAC.TelemetryPowerMetrics iDRAC.TelemetryPowerStatistics iDRAC.TelemetryPSUMetrics iDRAC.TelemetrySensor iDRAC.TelemetrySerialLog iDRAC.TelemetryStorageDiskSMARTData iDRAC.TelemetryStorageSensor iDRAC.TelemetrySystemUsage iDRAC.TelemetryThermalMetrics iDRAC.TelemetryThermalSensor iDRAC.Time iDRAC.Time.DayLightOffset iDRAC.Time.Timezone iDRAC.Time.TimeZoneOffset iDRAC.Update iDRAC.Update.FwUpdateIPAddr iDRAC.Update.FwUpdatePath iDRAC.Update.FwUpdateTFTPEnable iDRAC.USB iDRAC.USB.ConfigurationXML iDRAC.USB.ManagementPortMode iDRAC.USB.PortStatus iDRAC.USB.ZipPassword iDRAC.UserDomain iDRAC.UserDomain.1 iDRAC.UserDomain.2 iDRAC.UserDomain.3 iDRAC.UserDomain.4 iDRAC.UserDomain.5 iDRAC.UserDomain.6 iDRAC.UserDomain.7 iDRAC.UserDomain.8 iDRAC.UserDomain.9 iDRAC.UserDomain.10 iDRAC.UserDomain.11 iDRAC.UserDomain.12 iDRAC.UserDomain.13 iDRAC.UserDomain.14 iDRAC.UserDomain.15 iDRAC.UserDomain.16 iDRAC.UserDomain.17 iDRAC.UserDomain.18 iDRAC.UserDomain.19 iDRAC.UserDomain.20 iDRAC.UserDomain.21 iDRAC.UserDomain.22 iDRAC.UserDomain.23 iDRAC.UserDomain.24 iDRAC.UserDomain.25 iDRAC.UserDomain.26 iDRAC.UserDomain.27 iDRAC.UserDomain.28 iDRAC.UserDomain.29 iDRAC.UserDomain.30 iDRAC.UserDomain.31 iDRAC.UserDomain.32 iDRAC.UserDomain.33 iDRAC.UserDomain.34 iDRAC.UserDomain.35 iDRAC.UserDomain.36 iDRAC.UserDomain.37 iDRAC.UserDomain.38 iDRAC.UserDomain.39 iDRAC.UserDomain.40 iDRAC.Users iDRAC.Users.1 iDRAC.Users.2 iDRAC.Users.3 iDRAC.Users.4 iDRAC.Users.5 iDRAC.Users.6 iDRAC.Users.7 iDRAC.Users.8 iDRAC.Users.9 iDRAC.Users.10 iDRAC.Users.11 iDRAC.Users.12 iDRAC.Users.13 iDRAC.Users.14 iDRAC.Users.15 iDRAC.Users.16 iDRAC.VirtualConsole iDRAC.VirtualConsole.AccessPrivilege iDRAC.VirtualConsole.ActiveSessions iDRAC.VirtualConsole.AttachState iDRAC.VirtualConsole.CloseUnusedPort iDRAC.VirtualConsole.Enable iDRAC.VirtualConsole.EncryptEnable iDRAC.VirtualConsole.LocalDisable iDRAC.VirtualConsole.LocalVideo iDRAC.VirtualConsole.MaxSessions iDRAC.VirtualConsole.PluginType iDRAC.VirtualConsole.Port iDRAC.VirtualConsole.Timeout iDRAC.VirtualConsole.TimeoutEnable iDRAC.VirtualConsole.WebRedirect iDRAC.VirtualMedia iDRAC.VirtualMedia.ActiveSessions iDRAC.VirtualMedia.Attached iDRAC.VirtualMedia.BootOnce iDRAC.VirtualMedia.Enable iDRAC.VirtualMedia.EncryptEnable iDRAC.VirtualMedia.FloppyEmulation iDRAC.VirtualMedia.KeyEnable iDRAC.VirtualMedia.MaxSessions iDRAC.VNCServer iDRAC.VNCServer.ActiveSessions iDRAC.VNCServer.Enable iDRAC.VNCServer.MaxSessions iDRAC.VNCServer.Password iDRAC.VNCServer.Port iDRAC.VNCServer.SSLEncryptionBitLength iDRAC.VNCServer.Timeout iDRAC.WebServer iDRAC.WebServer.CustomCipherString iDRAC.WebServer.Enable iDRAC.WebServer.Http2Enable iDRAC.WebServer.HttpPort iDRAC.WebServer.HttpsPort iDRAC.WebServer.HttpsRedirection iDRAC.WebServer.MaxNumberOfSessions iDRAC.WebServer.SSLEncryptionBitLength iDRAC.WebServer.Timeout iDRAC.WebServer.TitleBarOption iDRAC.WebServer.TitleBarOptionCustom iDRAC.WebServer.TLSProtocol"

	BIOS_OPTS="BIOS BIOS.BiosBootSettings BIOS.BiosBootSettings BIOS.BiosBootSettings.BootMode BIOS.BiosBootSettings.BootSeq BIOS.BiosBootSettings.BootSeqRetry BIOS.BiosBootSettings.GenericUsbBoot BIOS.BiosBootSettings.HddFailover BIOS.BiosBootSettings.HddPlaceholder BIOS.BiosBootSettings.HddSeq BIOS.BiosBootSettings.SetBootOrderDis BIOS.BiosBootSettings.SetBootOrderEn BIOS.BiosBootSettings.SetBootOrderFqdd1 BIOS.BiosBootSettings.SetBootOrderFqdd10 BIOS.BiosBootSettings.SetBootOrderFqdd11 BIOS.BiosBootSettings.SetBootOrderFqdd12 BIOS.BiosBootSettings.SetBootOrderFqdd13 BIOS.BiosBootSettings.SetBootOrderFqdd14 BIOS.BiosBootSettings.SetBootOrderFqdd15 BIOS.BiosBootSettings.SetBootOrderFqdd16 BIOS.BiosBootSettings.SetBootOrderFqdd2 BIOS.BiosBootSettings.SetBootOrderFqdd3 BIOS.BiosBootSettings.SetBootOrderFqdd4 BIOS.BiosBootSettings.SetBootOrderFqdd5 BIOS.BiosBootSettings.SetBootOrderFqdd6 BIOS.BiosBootSettings.SetBootOrderFqdd7 BIOS.BiosBootSettings.SetBootOrderFqdd8 BIOS.BiosBootSettings.SetBootOrderFqdd9 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd1 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd10 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd11 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd12 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd13 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd14 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd15 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd16 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd2 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd3 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd4 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd5 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd6 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd7 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd8 BIOS.BiosBootSettings.SetLegacyHddOrderFqdd9 BIOS.BiosBootSettings.SysPrepClean BIOS.BiosBootSettings.UefiBootSeq BIOS.DellControlledTurbo BIOS.DellControlledTurbo.ControlledTurbo BIOS.DellControlledTurbo.ControlledTurboMinusBin BIOS.DellControlledTurbo.OptimizerMode BIOS.IntegratedDevices BIOS.IntegratedDevices.CurrentEmbVideoState BIOS.IntegratedDevices.EmbNic1Nic2 BIOS.IntegratedDevices.EmbVideo BIOS.IntegratedDevices.IntegratedNetwork1 BIOS.IntegratedDevices.IntegratedRaid BIOS.IntegratedDevices.MmioLimit BIOS.IntegratedDevices.OsWatchdogTimer BIOS.IntegratedDevices.PcieEnhancedPreferredIo BIOS.IntegratedDevices.PciePreferredIoBus BIOS.IntegratedDevices.SriovGlobalEnable BIOS.IntegratedDevices.UsbManagedPort BIOS.IntegratedDevices.UsbPorts BIOS.MemSettings BIOS.MemSettings.CECriticalSEL BIOS.MemSettings.CorrEccSmi BIOS.MemSettings.DramRefreshDelay BIOS.MemSettings.MemOpMode BIOS.MemSettings.MemTest BIOS.MemSettings.MemoryInterleaving BIOS.MemSettings.OppSrefEn BIOS.MemSettings.SysMemSize BIOS.MemSettings.SysMemSpeed BIOS.MemSettings.SysMemType BIOS.MemSettings.SysMemVolt BIOS.MemSettings.VideoMem BIOS.MemoryMapOut BIOS.MemoryMapOut.DimmSlot00 BIOS.MemoryMapOut.DimmSlot01 BIOS.MemoryMapOut.DimmSlot02 BIOS.MemoryMapOut.DimmSlot03 BIOS.MemoryMapOut.DimmSlot04 BIOS.MemoryMapOut.DimmSlot05 BIOS.MemoryMapOut.DimmSlot06 BIOS.MemoryMapOut.DimmSlot07 BIOS.MemoryMapOut.DimmSlot08 BIOS.MemoryMapOut.DimmSlot09 BIOS.MemoryMapOut.DimmSlot10 BIOS.MemoryMapOut.DimmSlot11 BIOS.MemoryMapOut.DimmSlot12 BIOS.MemoryMapOut.DimmSlot13 BIOS.MemoryMapOut.DimmSlot14 BIOS.MemoryMapOut.DimmSlot15 BIOS.MemoryMapOut.DimmSlot16 BIOS.MemoryMapOut.DimmSlot17 BIOS.MemoryMapOut.DimmSlot18 BIOS.MemoryMapOut.DimmSlot19 BIOS.MemoryMapOut.DimmSlot20 BIOS.MemoryMapOut.DimmSlot21 BIOS.MemoryMapOut.DimmSlot22 BIOS.MemoryMapOut.DimmSlot23 BIOS.MemoryMapOut.DimmSlot24 BIOS.MemoryMapOut.DimmSlot25 BIOS.MemoryMapOut.DimmSlot26 BIOS.MemoryMapOut.DimmSlot27 BIOS.MemoryMapOut.DimmSlot28 BIOS.MemoryMapOut.DimmSlot29 BIOS.MemoryMapOut.DimmSlot30 BIOS.MemoryMapOut.DimmSlot31 BIOS.MiscSettings BIOS.MiscSettings.AssetTag BIOS.MiscSettings.DellWyseP25BIOSAccess BIOS.MiscSettings.ErrPrompt BIOS.MiscSettings.ForceInt10 BIOS.MiscSettings.NumLock BIOS.MiscSettings.PowerCycleRequest BIOS.NvmeSettings BIOS.NvmeSettings.BiosNvmeDriver BIOS.NvmeSettings.NvmeMode BIOS.OneTimeBoot BIOS.OneTimeBoot.OneTimeBootMode BIOS.OneTimeBoot.OneTimeBootSeqDev BIOS.OneTimeBoot.OneTimeHddSeqDev BIOS.ProcSettings BIOS.ProcSettings.CcdCores BIOS.ProcSettings.CcxAsNumaDomain BIOS.ProcSettings.CpuMinSevAsid BIOS.ProcSettings.DirectMemAccessProtection BIOS.ProcSettings.IommuSupport BIOS.ProcSettings.L1StreamHwPrefetcher BIOS.ProcSettings.L2StreamHwPrefetcher BIOS.ProcSettings.LogicalProc BIOS.ProcSettings.MadtCoreEnumeration BIOS.ProcSettings.NumaNodesPerSocket BIOS.ProcSettings.Proc1Brand BIOS.ProcSettings.Proc1Id BIOS.ProcSettings.Proc1L2Cache BIOS.ProcSettings.Proc1L3Cache BIOS.ProcSettings.Proc1Microcode BIOS.ProcSettings.Proc1NumCores BIOS.ProcSettings.Proc2Brand BIOS.ProcSettings.Proc2Id BIOS.ProcSettings.Proc2L2Cache BIOS.ProcSettings.Proc2L3Cache BIOS.ProcSettings.Proc2Microcode BIOS.ProcSettings.Proc2NumCores BIOS.ProcSettings.ProcBusSpeed BIOS.ProcSettings.ProcCcds BIOS.ProcSettings.ProcConfigTdp BIOS.ProcSettings.ProcCoreSpeed BIOS.ProcSettings.ProcVirtualization BIOS.ProcSettings.ProcX2Apic BIOS.ProcSettings.TransparentSme BIOS.RedundantOsControl BIOS.RedundantOsControl.RedundantOsBoot BIOS.RedundantOsControl.RedundantOsLocation BIOS.RedundantOsControl.RedundantOsState BIOS.SataSettings BIOS.SataSettings.EmbSata BIOS.SataSettings.SataPortA BIOS.SataSettings.SataPortACapacity BIOS.SataSettings.SataPortADriveType BIOS.SataSettings.SataPortAModel BIOS.SataSettings.SataPortB BIOS.SataSettings.SataPortBCapacity BIOS.SataSettings.SataPortBDriveType BIOS.SataSettings.SataPortBModel BIOS.SataSettings.SataPortC BIOS.SataSettings.SataPortCCapacity BIOS.SataSettings.SataPortCDriveType BIOS.SataSettings.SataPortCModel BIOS.SataSettings.SataPortD BIOS.SataSettings.SataPortDCapacity BIOS.SataSettings.SataPortDDriveType BIOS.SataSettings.SataPortDModel BIOS.SataSettings.SataPortE BIOS.SataSettings.SataPortECapacity BIOS.SataSettings.SataPortEDriveType BIOS.SataSettings.SataPortEModel BIOS.SataSettings.SataPortF BIOS.SataSettings.SataPortFCapacity BIOS.SataSettings.SataPortFDriveType BIOS.SataSettings.SataPortFModel BIOS.SataSettings.SataPortG BIOS.SataSettings.SataPortGCapacity BIOS.SataSettings.SataPortGDriveType BIOS.SataSettings.SataPortGModel BIOS.SataSettings.SataPortH BIOS.SataSettings.SataPortHCapacity BIOS.SataSettings.SataPortHDriveType BIOS.SataSettings.SataPortHModel BIOS.SataSettings.SecurityFreezeLock BIOS.SataSettings.WriteCache BIOS.SerialCommSettings BIOS.SerialCommSettings.ConTermType BIOS.SerialCommSettings.ExtSerialConnector BIOS.SerialCommSettings.FailSafeBaud BIOS.SerialCommSettings.RedirAfterBoot BIOS.SerialCommSettings.SerialComm BIOS.SerialCommSettings.SerialPortAddress BIOS.SlotBifurcation BIOS.SlotBifurcation.DellAutoDiscovery BIOS.SlotBifurcation.Slot1Bif BIOS.SlotBifurcation.Slot2Bif BIOS.SlotBifurcation.Slot3Bif BIOS.SlotDisablement BIOS.SlotDisablement.Slot1 BIOS.SlotDisablement.Slot2 BIOS.SlotDisablement.Slot3 BIOS.SysInformation BIOS.SysProfileSettings BIOS.SysSecurity BIOS.SysSecurity.AcPwrRcvry BIOS.SysSecurity.AcPwrRcvryDelay BIOS.SysSecurity.AcPwrRcvryUserDelay BIOS.SysSecurity.AesNi BIOS.SysSecurity.AuthorizeDeviceFirmware BIOS.SysSecurity.PasswordStatus BIOS.SysSecurity.PwrButton BIOS.SysSecurity.SHA256SetupPassword BIOS.SysSecurity.SHA256SetupPasswordSalt BIOS.SysSecurity.SHA256SystemPassword BIOS.SysSecurity.SHA256SystemPasswordSalt BIOS.SysSecurity.SecureBoot BIOS.SysSecurity.SecureBootMode BIOS.SysSecurity.SecureBootPolicy BIOS.SysSecurity.SetupPassword BIOS.SysSecurity.SysPassword BIOS.SysSecurity.TpmInfo BIOS.SysSecurity.UefiVariableAccess BIOS.TpmAdvancedSettings"

	NIC_OPTS="NIC NIC.DCBSettings NIC.DCBSettings.1 NIC.DCBSettings.2 NIC.DeviceLevelConfig NIC.DeviceLevelConfig.1 NIC.DeviceLevelConfig.2 NIC.FrmwImgMenu NIC.FrmwImgMenu.1 NIC.FrmwImgMenu.2 Nic.FrmwImgMenu NIC.IscsiFirstTgtParams.1 NIC.IscsiFirstTgtParams.2 Nic.IscsiGenParams NIC.IscsiGenParams.1 NIC.IscsiGenParams.2 Nic.IscsiInitiatorParams NIC.IscsiInitiatorParams.1 NIC.IscsiInitiatorParams.2 Nic.NICConfig NIC.NICConfig.1 NIC.NICConfig.2 Nic.NICPartitioningConfig NIC.NICPartitioningConfig.1 NIC.NICPartitioningConfig.2 Nic.VndrConfigPage NIC.VndrConfigPage.1 NIC.VndrConfigPage.2"

	STORAGE_OPTS="Storage Storage.Controller Storage.Controller.1 Storage.Controller.2"

	friendly_first="inventory job log raw sensor system tui bios idrac nic storage"
	global_opts="--config-file --debug --device --help --log-file --verbose --version --remote --remote-user --remote-password --remote-port --interactive --stop-on-certificate-error --nocertwarn -r -u -p -P -i -S"

	# The values of the friendly formatter and command options,
	# wherever they appear on the line.
	case "${prev}" in
	--format)
		_orac_reply "csv json table value shell yaml" "${cur}"
		return 0
	;;
	--type)
		_orac_reply "sel rac trace" "${cur}"
		return 0
	;;
	esac

	# Global options come before the subcommand.
	if [ -z "${cmd_name}" ]; then
		case "${prev}" in
		--device|--log-file|--config-file|--remote-user|--remote-password|--remote-port)
			COMPREPLY=( $(compgen -f -- "${cur}") )
			return 0
		;;
		esac
		case "${cur}" in
		-*)
			_orac_reply "${global_opts}" "${cur}"
			return 0
		;;
		esac
		_orac_reply "help ${opts} ${friendly_first}" "${cur}"
		return 0
	fi

	case "${cmd_name}" in
	help)
		_orac_reply "${opts}" "${cur}"
		return 0
	;;
	get|set)
		_orac_reply "${iDRAC_OPTS} ${BIOS_OPTS} ${NIC_OPTS} ${STORAGE_OPTS}" "${cur}"
		return 0
	;;
	jobqueue)
		case "${prev}" in
		"jobqueue")
			COMPREPLY=( $(compgen -W "create" -- ${cur}) )
			return 0
		;;
		"create")
			COMPREPLY=( $(compgen -W "BIOS.Setup.1-1" -- ${cur}) )
			return 0
		;;
		*)
			return 0
		;;
		esac
	;;
	getsel|getraclog|gettracelog)
		# Client-side options of the log commands.
		if [[ "${cur}" == -* ]]; then
			COMPREPLY=( $(compgen -W "-m --more -i" -- "${cur}") )
		fi
		return 0
	;;
	system)
		_orac_reply "show" "${cur}"
		return 0
	;;
	log)
		_orac_reply "list --type sel rac trace --latest --severity" "${cur}"
		return 0
	;;
	job)
		_orac_reply "list create delete" "${cur}"
		return 0
	;;
	inventory)
		_orac_reply "list --software" "${cur}"
		return 0
	;;
	sensor)
		_orac_reply "list" "${cur}"
		return 0
	;;
	tui)
		return 0
	;;
	raw)
		_orac_reply "${opts}" "${cur}"
		return 0
	;;
	bios|idrac|nic|storage)
		_orac_target_words
		return 0
	;;
	esac
}
complete -F _orac orac
