'Describes all snapshots.
:param snapshot: If provided, only returns snapshot information for the
provided snapshot.
:param owner: The owner of the snapshot: self|amazon|ID
:type owner: ``str``
:rtype: ``list`` of :class:`VolumeSnapshot`'

def list_snapshots(self, snapshot=None, owner=None):

    params = {'Action': 'DescribeSnapshots'}
    if snapshot:
        params.update({'SnapshotId.1': snapshot.id})
    if owner:
        params.update({'Owner.1': owner})
    response = self.connection.request(self.path, params=params).object
    snapshots = self._to_snapshots(response)
    return snapshots
