'Free up an Elastic IP address.  Pass a public IP address to
release an EC2 Elastic IP address and an AllocationId to
release a VPC Elastic IP address.  You should only pass
one value.
This requires one of ``public_ip`` or ``allocation_id`` depending
on if you\'re associating a VPC address or a plain EC2 address.
When using an Allocation ID, make sure to pass ``None`` for ``public_ip``
as EC2 expects a single parameter and if ``public_ip`` is passed boto
will preference that instead of ``allocation_id``.
:type public_ip: string
:param public_ip: The public IP address for EC2 elastic IPs.
:type allocation_id: string
:param allocation_id: The Allocation ID for VPC elastic IPs.
:type dry_run: bool
:param dry_run: Set to True if the operation should not actually run.
:rtype: bool
:return: True if successful'

def release_address(self, public_ip=None, allocation_id=None, dry_run=False):

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