'Detach an EBS volume from an EC2 instance.
:type volume_id: str
:param volume_id: The ID of the EBS volume to be attached.
:type instance_id: str
:param instance_id: The ID of the EC2 instance from which it will
be detached.
:type device: str
:param device: The device on the instance through which the
volume is exposted (e.g. /dev/sdh)
:type force: bool
:param force: Forces detachment if the previous detachment
attempt did not occur cleanly.  This option can lead to
data loss or a corrupted file system. Use this option only
as a last resort to detach a volume from a failed
instance. The instance will not have an opportunity to
flush file system caches nor file system meta data. If you
use this option, you must perform file system check and
repair procedures.
:type dry_run: bool
:param dry_run: Set to True if the operation should not actually run.
:rtype: bool
:return: True if successful'

def detach_volume(self, volume_id, instance_id=None, device=None, force=False, dry_run=False):

    params = {'VolumeId': volume_id}
    if instance_id:
        params['InstanceId'] = instance_id
    if device:
        params['Device'] = device
    if force:
        params['Force'] = 'true'
    if dry_run:
        params['DryRun'] = 'true'
    return self.get_status('DetachVolume', params, verb='POST')
