'Disassociate an Elastic IP address from a currently running instance.
:type public_ip: string
:param public_ip: The public IP address for EC2 elastic IPs.
:type association_id: string
:param association_id: The association ID for a VPC based elastic ip.
:type dry_run: bool
:param dry_run: Set to True if the operation should not actually run.
:rtype: bool
:return: True if successful'

def disassociate_address(self, public_ip=None, association_id=None, dry_run=False):

    params = {}
    if (association_id is not None):
        params['AssociationId'] = association_id
    elif (public_ip is not None):
        params['PublicIp'] = public_ip
    if dry_run:
        params['DryRun'] = 'true'
    return self.get_status('DisassociateAddress', params, verb='POST')
