    # File lib/fog/aws/requests/compute/describe_snapshots.rb, line 55
            def describe_snapshots(filters = {}, options = {})
              unless filters.is_a?(Hash)
                Fog::Logger.deprecation("describe_snapshots with #{filters.class} param is deprecated, use describe_snapshots('snapshot-id' => []) instead [light_black](#{caller.first})[/]")
                filters = {'snapshot-id' => [*filters]}
              end
              unless options.empty?
                Fog::Logger.deprecation("describe_snapshots with a second param is deprecated, use describe_snapshots(options) instead [light_black](#{caller.first})[/]")
              end

              response = Excon::Response.new

              snapshot_set = self.data[:snapshots].values

              if filters.delete('owner-alias')
                Fog::Logger.warning("describe_snapshots with owner-alias is not mocked [light_black](#{caller.first})[/]")
              end
              if (restorable_by = filters.delete('RestorableBy')) && restorable_by != 'self'
                Fog::Logger.warning("describe_snapshots with RestorableBy other than 'self' (wanted #{restorable_by.inspect}) is not mocked [light_black](#{caller.first})[/]")
              end

              snapshot_set = apply_tag_filters(snapshot_set, filters, 'snapshotId')

              aliases = {
                'description' => 'description',
                'owner-id'    => 'ownerId',
                'progress'    => 'progress',
                'snapshot-id' => 'snapshotId',
                'start-time'  => 'startTime',
                'status'      => 'status',
                'volume-id'   => 'volumeId',
                'volume-size' => 'volumeSize'
              }

              for filter_key, filter_value in filters
                aliased_key = aliases[filter_key]
                snapshot_set = snapshot_set.reject{|snapshot| ![*filter_value].include?(snapshot[aliased_key])}
              end

              snapshot_set.each do |snapshot|
                case snapshot['status']
                when 'in progress', 'pending'
                  if Time.now - snapshot['startTime'] >= Fog::Mock.delay * 2
                    snapshot['progress']  = '100%'
                    snapshot['status']    = 'completed'
                  elsif Time.now - snapshot['startTime'] >= Fog::Mock.delay
                    snapshot['progress']  = '50%'
                    snapshot['status']    = 'in progress'
                  else
                    snapshot['progress']  = '0%'
                    snapshot['status']    = 'in progress'
                  end
                end
              end

              snapshot_set = snapshot_set.map {|snapshot| snapshot.merge('tagSet' => self.data[:tag_sets][snapshot['snapshotId']]) }

              response.status = 200
              response.body = {
                'requestId' => Fog::AWS::Mock.request_id,
                'snapshotSet' => snapshot_set
              }
              response
            end