Release an EIP. If the EIP was allocated for a VPC instance, an
        AllocationId(aid) must be provided instead of a PublicIp. Setting
        disassociate to True will attempt to disassociate the IP before
        releasing it (required for associated nondefault VPC instances).

def destroy(self, eip_or_aid, disassociate=False):
        """Release an EIP. If the EIP was allocated for a VPC instance, an
        AllocationId(aid) must be provided instead of a PublicIp. Setting
        disassociate to True will attempt to disassociate the IP before
        releasing it (required for associated nondefault VPC instances).
        """
        if "." in eip_or_aid:               # If an IP is given (Classic)
            # NOTE: EIPs are automatically disassociated for Classic instances.
            return "true" == self.call("ReleaseAddress",
                                       response_data_key="return",
                                       PublicIp=eip_or_aid)
        else:                               # If an AID is given (VPC)
            if disassociate:
                self.disassociate(eip_or_aid)
            return "true" == self.call("ReleaseAddress",
                                       response_data_key="return",
                                       AllocationId=eip_or_aid)