'Return list of IP addresses assigned to
the account.
:keyword    public: set to True to list only
public IPs or False to list only
private IPs. Set to None or not specify
at all not to filter by type
:type       public: ``bool``
:keyword    assigned: set to True to list only addresses
assigned to servers, False to list unassigned
addresses and set to None or don\'t set at all
not no filter by state
:type       assigned: ``bool``
:keyword    location: filter IP addresses by location
:type       location: :class:`NodeLocation`
:rtype: ``list`` of :class:`GoGridIpAddress`'

def ex_list_ips(self, **kwargs):

    params = {}
    if (('public' in kwargs) and (kwargs['public'] is not None)):
        params['ip.type'] = {True: 'Public', False: 'Private'}[kwargs['public']]
    if (('assigned' in kwargs) and (kwargs['assigned'] is not None)):
        params['ip.state'] = {True: 'Assigned', False: 'Unassigned'}[kwargs['assigned']]
    if (('location' in kwargs) and (kwargs['location'] is not None)):
        params['datacenter'] = kwargs['location'].id
    response = self.connection.request('/api/grid/ip/list', params=params)
    ips = self._to_ips(response.object)
    return ips
