def internet_gateways(options = {})
      batches = Enumerator.new do |y|
        resp = @client.describe_internet_gateways(options)
        resp.each_page do |page|
          batch = []
          page.data.internet_gateways.each do |i|
            batch << InternetGateway.new(
              id: i.internet_gateway_id,
              data: i,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      InternetGateway::Collection.new(batches)
    end
def internet_gateways(options = {})
      batches = Enumerator.new do |y|
        resp = @client.describe_internet_gateways(options)
        resp.each_page do |page|
          batch = []
          page.data.internet_gateways.each do |i|
            batch << InternetGateway.new(
              id: i.internet_gateway_id,
              data: i,
              client: @client
            )
          end
          y.yield(batch)
        end
      end
      InternetGateway::Collection.new(batches)
    end
@example Request syntax with placeholder values

   internet_gateways = ec2.internet_gateways({
     filters: [
       {
         name: "String",
         values: ["String"],
       },
     ],
     dry_run: false,
     internet_gateway_ids: ["String"],
   })
 @param [Hash] options ({})
 @option options [Array<Types::Filter>] :filters
   One or more filters.

   * `attachment.state` - The current state of the attachment between the
     gateway and the VPC (`available`). Present only if a VPC is
     attached.

   * `attachment.vpc-id` - The ID of an attached VPC.

   * `internet-gateway-id` - The ID of the Internet gateway.

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

   * `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.
 @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`.
 @option options [Array<String>] :internet_gateway_ids
   One or more internet gateway IDs.

   Default: Describes all your internet gateways.
 @return [InternetGateway::Collection]