def vpc_addresses(options = {})
      batches = Enumerator.new do |y|
        batch = []
        options = Aws::Util.deep_merge(options, filters: [{
          name: "instance-id",
          values: [@id]
        }])
        resp = @client.describe_addresses(options)
        resp.data.addresses.each do |a|
          batch << VpcAddress.new(
            allocation_id: a.allocation_id,
            data: a,
            client: @client
          )
        end
        y.yield(batch)
      end
      VpcAddress::Collection.new(batches)
    end
def vpc_addresses(options = {})
      batches = Enumerator.new do |y|
        batch = []
        options = Aws::Util.deep_merge(options, filters: [{
          name: "instance-id",
          values: [@id]
        }])
        resp = @client.describe_addresses(options)
        resp.data.addresses.each do |a|
          batch << VpcAddress.new(
            allocation_id: a.allocation_id,
            data: a,
            client: @client
          )
        end
        y.yield(batch)
      end
      VpcAddress::Collection.new(batches)
    end
@example Request syntax with placeholder values

   vpc_addresses = instance.vpc_addresses({
     filters: [
       {
         name: "String",
         values: ["String"],
       },
     ],
     public_ips: ["String"],
     allocation_ids: ["String"],
     dry_run: false,
   })
 @param [Hash] options ({})
 @option options [Array<Types::Filter>] :filters
   One or more filters. Filter names and values are case-sensitive.

   * `allocation-id` - \[EC2-VPC\] The allocation ID for the address.

   * `association-id` - \[EC2-VPC\] The association ID for the address.

   * `domain` - Indicates whether the address is for use in EC2-Classic
     (`standard`) or in a VPC (`vpc`).

   * `instance-id` - The ID of the instance the address is associated
     with, if any.

   * `network-interface-id` - \[EC2-VPC\] The ID of the network interface
     that the address is associated with, if any.

   * `network-interface-owner-id` - The AWS account ID of the owner.

   * `private-ip-address` - \[EC2-VPC\] The private IP address associated
     with the Elastic IP address.

   * `public-ip` - The Elastic IP address.

   * `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 [Array<String>] :public_ips
   One or more Elastic IP addresses.

   Default: Describes all your Elastic IP addresses.
 @option options [Array<String>] :allocation_ids
   \[EC2-VPC\] Information about the allocation IDs.
 @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 [VpcAddress::Collection]