'Retrieve all the instance reservations associated with your account.
:type instance_ids: list
:param instance_ids: A list of strings of instance IDs
:type filters: dict
:param filters: Optional filters that can be used to limit the
results returned.  Filters are provided in the form of a
dictionary consisting of filter names as the key and
filter values as the value.  The set of allowable filter
names/values is dependent on the request being performed.
Check the EC2 API guide for details.
:type dry_run: bool
:param dry_run: Set to True if the operation should not actually run.
:type max_results: int
:param max_results: The maximum number of paginated instance
items per response.
:type next_token: str
:param next_token: A string specifying the next paginated set
of results to return.
:rtype: list
:return: A list of  :class:`boto.ec2.instance.Reservation`'

def get_all_reservations(self, instance_ids=None, filters=None, dry_run=False, max_results=None, next_token=None):

    params = {}
    if instance_ids:
        self.build_list_params(params, instance_ids, 'InstanceId')
    if filters:
        if ('group-id' in filters):
            gid = filters.get('group-id')
            if ((not gid.startswith('sg-')) or (len(gid) != 11)):
                warnings.warn("The    group-id    filter    now    requires    a    security    group    identifier    (sg-*)    instead    of    a    group    name.    To    filter    by    group    name    use    the    'group-name'    filter    instead.", UserWarning)
        self.build_filter_params(params, filters)
    if dry_run:
        params['DryRun'] = 'true'
    if (max_results is not None):
        params['MaxResults'] = max_results
    if next_token:
        params['NextToken'] = next_token
    return self.get_list('DescribeInstances', params, [('item', Reservation)], verb='POST')
