def snapshots(options = {})
      batches = Enumerator.new do |y|
        options = options.merge(db_instance_identifier: @id)
        resp = @client.describe_db_snapshots(options)
        resp.each_page do |page|
          batch = []
          page.data.db_snapshots.each do |d|
            batch << DBSnapshot.new(
              instance_id: options[:db_instance_identifier],
              snapshot_id: d.db_snapshot_identifier,
              data: d,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      DBSnapshot::Collection.new(batches)
    end
def snapshots(options = {})
      batches = Enumerator.new do |y|
        options = options.merge(db_instance_identifier: @id)
        resp = @client.describe_db_snapshots(options)
        resp.each_page do |page|
          batch = []
          page.data.db_snapshots.each do |d|
            batch << DBSnapshot.new(
              instance_id: options[:db_instance_identifier],
              snapshot_id: d.db_snapshot_identifier,
              data: d,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      DBSnapshot::Collection.new(batches)
    end
@example Request syntax with placeholder values

   snapshots = db_instance.snapshots({
     db_snapshot_identifier: "String",
     snapshot_type: "String",
     filters: [
       {
         name: "String", # required
         values: ["String"], # required
       },
     ],
     include_shared: false,
     include_public: false,
     dbi_resource_id: "String",
   })
 @param [Hash] options ({})
 @option options [String] :db_snapshot_identifier
   A specific DB snapshot identifier to describe. This parameter can't
   be used in conjunction with `DBInstanceIdentifier`. This value is
   stored as a lowercase string.

   Constraints:

   * If supplied, must match the identifier of an existing DBSnapshot.

   * If this identifier is for an automated snapshot, the `SnapshotType`
     parameter must also be specified.
 @option options [String] :snapshot_type
   The type of snapshots to be returned. You can specify one of the
   following values:

   * `automated` - Return all DB snapshots that have been automatically
     taken by Amazon RDS for my AWS account.

   * `manual` - Return all DB snapshots that have been taken by my AWS
     account.

   * `shared` - Return all manual DB snapshots that have been shared to
     my AWS account.

   * `public` - Return all DB snapshots that have been marked as public.

   * `awsbackup` - Return the DB snapshots managed by the AWS Backup
     service.

     For information about AWS Backup, see the [ *AWS Backup Developer
     Guide.* ][1]

     The `awsbackup` type does not apply to Aurora.

   If you don't specify a `SnapshotType` value, then both automated and
   manual snapshots are returned. Shared and public DB snapshots are not
   included in the returned results by default. You can include shared
   snapshots with these results by setting the `IncludeShared` parameter
   to `true`. You can include public snapshots with these results by
   setting the `IncludePublic` parameter to `true`.

   The `IncludeShared` and `IncludePublic` parameters don't apply for
   `SnapshotType` values of `manual` or `automated`. The `IncludePublic`
   parameter doesn't apply when `SnapshotType` is set to `shared`. The
   `IncludeShared` parameter doesn't apply when `SnapshotType` is set to
   `public`.



   [1]: https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html
 @option options [Array<Types::Filter>] :filters
   This parameter is not currently supported.
 @option options [Boolean] :include_shared
   True to include shared manual DB snapshots from other AWS accounts
   that this AWS account has been given permission to copy or restore,
   and otherwise false. The default is `false`.

   You can give an AWS account permission to restore a manual DB snapshot
   from another AWS account by using the ModifyDBSnapshotAttribute API
   action.
 @option options [Boolean] :include_public
   True to include manual DB snapshots that are public and can be copied
   or restored by any AWS account, and otherwise false. The default is
   false.

   You can share a manual DB snapshot as public by using the
   ModifyDBSnapshotAttribute API.
 @option options [String] :dbi_resource_id
   A specific DB resource ID to describe.
 @return [DBSnapshot::Collection]