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 IPMI 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.  Strictly
                    speaking, the spec suggests that if not set, the system
                    should BIOS boot and offers no "don't care" option.
                    In practice, this flag not being set does not preclude
                    UEFI boot on any system I've encountered.

    :param kwargs:
        - api_host=127.0.0.1
        - api_user=admin
        - api_pass=example
        - api_port=623
        - api_kg=None

    :returns: dict or True -- If callback is not provided, the response

    CLI Examples:

    .. code-block:: bash

        salt-call ipmi.set_bootdev bootdev=network persist=True

def set_bootdev(bootdev='default', persist=False, uefiboot=False, **kwargs):
    '''
    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 IPMI 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.  Strictly
                    speaking, the spec suggests that if not set, the system
                    should BIOS boot and offers no "don't care" option.
                    In practice, this flag not being set does not preclude
                    UEFI boot on any system I've encountered.

    :param kwargs:
        - api_host=127.0.0.1
        - api_user=admin
        - api_pass=example
        - api_port=623
        - api_kg=None

    :returns: dict or True -- If callback is not provided, the response

    CLI Examples:

    .. code-block:: bash

        salt-call ipmi.set_bootdev bootdev=network persist=True
    '''
    with _IpmiCommand(**kwargs) as s:
        return s.set_bootdev(bootdev)