'Get all EBS Snapshots associated with the current credentials.
:type snapshot_ids: list
:param snapshot_ids: Optional list of snapshot ids.  If this list is
present, only the Snapshots associated with
these snapshot ids will be returned.
:type owner: str or list
:param owner: If present, only the snapshots owned by the specified user(s)
will be returned.  Valid values are:
* self
* amazon
* AWS Account ID
:type restorable_by: str or list
:param restorable_by: If present, only the snapshots that are restorable
by the specified account id(s) will be returned.
: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.
:rtype: list of :class:`boto.ec2.snapshot.Snapshot`
:return: The requested Snapshot objects'

def get_all_snapshots(self, snapshot_ids=None, owner=None, restorable_by=None, filters=None, dry_run=False):

    params = {}
    if snapshot_ids:
        self.build_list_params(params, snapshot_ids, 'SnapshotId')
    if owner:
        self.build_list_params(params, owner, 'Owner')
    if restorable_by:
        self.build_list_params(params, restorable_by, 'RestorableBy')
    if filters:
        self.build_filter_params(params, filters)
    if dry_run:
        params['DryRun'] = 'true'
    return self.get_list('DescribeSnapshots', params, [('item', Snapshot)], verb='POST')
