#!/bin/bash completion for racadm

_racadm () {
	local cur prev cmd_name
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	cmd_name="${COMP_WORDS[1]}"

	opts="arp autoupdatescheduler bioscert biosscan clearasrscreen clearpending closessn clrsel 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"

	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"
	# TODO: Finish what's below... list isn't exhaustive.
	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"

	case "${cmd_name}" in
	help)
		COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
		return 0
	;;
	get|set)
		COMPREPLY=( $(compgen -W "${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
	;;
	*)
	;;
	esac 
	COMPREPLY=($(compgen -W "help ${opts}" -- "${cur}"))
}
complete -F _racadm racadm
