code: def associate_address(self, instance_id, public_ip=None, allocation_id=None):
          
          params = { 'InstanceId' : instance_id }
  
          if public_ip is not None:
              params['PublicIp'] = public_ip
          elif allocation_id is not None:
              params['AllocationId'] = allocation_id
  
          return self.get_status('AssociateAddress', params, verb='POST')
docs: Associate an Elastic IP address with a currently running instance.
          This requires one of ``public_ip`` or ``allocation_id`` depending
          on if you're associating a VPC address or a plain EC2 address.
  
          :type instance_id: string
          :param instance_id: The ID of the instance
  
          :type public_ip: string
          :param public_ip: The public IP address for EC2 based allocations.
  
          :type allocation_id: string
          :param allocation_id: The allocation ID for a VPC-based elastic IP.
  
          :rtype: bool
          :return: True if successful