code: def set_bootdev(self, bootdev, persist=False, uefiboot=None):
          
          reqbootdev = bootdev
          if (bootdev not in boot_devices_write
                  and bootdev not in boot_devices_read):
              raise exc.InvalidParameterValue('Unsupported device '
                                              + repr(bootdev))
          bootdev = boot_devices_write.get(bootdev, bootdev)
          if bootdev == 'None':
              payload = {'Boot': {'BootSourceOverrideEnabled': 'Disabled'}}
          else:
              payload = {'Boot': {
                  'BootSourceOverrideEnabled': 'Continuous' if persist
                                               else 'Once',
                  'BootSourceOverrideTarget': bootdev,
              }}
              if uefiboot is not None:
                  uefiboot = 'UEFI' if uefiboot else 'Legacy'
                  payload['BootSourceOverrideMode'] = uefiboot
          self._do_web_request(self.sysurl, payload, method='PATCH')
          return {'bootdev': reqbootdev}
docs: Set boot device to use on next reboot
  
          :param bootdev:
                          *network -- Request network boot
                          *hd -- Boot from hard drive
                          *safe -- Boot from hard drive, requesting 'safe mode'
                          *optical -- boot from CD/DVD/BD drive
                          *setup -- Boot into setup utility
                          *default -- remove any directed boot device request
          :param persist: If true, ask that system firmware use this device
                          beyond next boot.  Be aware many systems do not honor
                          this
          :param uefiboot: If true, request UEFI boot explicitly.  If False,
                           request BIOS style boot.
                           None (default) does not modify the boot mode.
          :raises: PyghmiException on an error.
          :returns: dict or True -- If callback is not provided, the response