def snapshots(options = {})
      batches = Enumerator.new do |y|
        options = Aws::Util.deep_merge(options, filters: [{
          name: "volume-id",
          values: [@id]
        }])
        resp = @client.describe_snapshots(options)
        resp.each_page do |page|
          batch = []
          page.data.snapshots.each do |s|
            batch << Snapshot.new(
              id: s.snapshot_id,
              data: s,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      Snapshot::Collection.new(batches)
    end
def snapshots(options = {})
      batches = Enumerator.new do |y|
        options = Aws::Util.deep_merge(options, filters: [{
          name: "volume-id",
          values: [@id]
        }])
        resp = @client.describe_snapshots(options)
        resp.each_page do |page|
          batch = []
          page.data.snapshots.each do |s|
            batch << Snapshot.new(
              id: s.snapshot_id,
              data: s,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      Snapshot::Collection.new(batches)
    end
@!group Associations
 @example Request syntax with placeholder values

   snapshots = volume.snapshots({
     filters: [
       {
         name: "String",
         values: ["String"],
       },
     ],
     owner_ids: ["String"],
     restorable_by_user_ids: ["String"],
     snapshot_ids: ["String"],
     dry_run: false,
   })
 @param [Hash] options ({})
 @option options [Array<Types::Filter>] :filters
   The filters.

   * `description` - A description of the snapshot.

   * `encrypted` - Indicates whether the snapshot is encrypted (`true` \|
     `false`)

   * `owner-alias` - Value from an Amazon-maintained list (`amazon` \|
     `self` \| `all` \| `aws-marketplace` \| `microsoft`) of snapshot
     owners. Not to be confused with the user-configured AWS account
     alias, which is set from the IAM console.

   * `owner-id` - The ID of the AWS account that owns the snapshot.

   * `progress` - The progress of the snapshot, as a percentage (for
     example, 80%).

   * `snapshot-id` - The snapshot ID.

   * `start-time` - The time stamp when the snapshot was initiated.

   * `status` - The status of the snapshot (`pending` \| `completed` \|
     `error`).

   * `tag`\:&lt;key&gt; - The key/value combination of a tag assigned to
     the resource. Use the tag key in the filter name and the tag value
     as the filter value. For example, to find all resources that have a
     tag with the key `Owner` and the value `TeamA`, specify `tag:Owner`
     for the filter name and `TeamA` for the filter value.

   * `tag-key` - The key of a tag assigned to the resource. Use this
     filter to find all resources assigned a tag with a specific key,
     regardless of the tag value.

   * `volume-id` - The ID of the volume the snapshot is for.

   * `volume-size` - The size of the volume, in GiB.
 @option options [Array<String>] :owner_ids
   Describes the snapshots owned by these owners.
 @option options [Array<String>] :restorable_by_user_ids
   The IDs of the AWS accounts that can create volumes from the snapshot.
 @option options [Array<String>] :snapshot_ids
   The snapshot IDs.

   Default: Describes the snapshots for which you have create volume
   permissions.
 @option options [Boolean] :dry_run
   Checks whether you have the required permissions for the action,
   without actually making the request, and provides an error response.
   If you have the required permissions, the error response is
   `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
 @return [Snapshot::Collection]