# File lib/fog/aws/models/compute/volume.rb, line 39
        def save
          raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
          requires :availability_zone
          requires_one :size, :snapshot_id

          data = connection.create_volume(availability_zone, size, snapshot_id).body
          new_attributes = data.reject {|key,value| key == 'requestId'}
          merge_attributes(new_attributes)

          if tags = self.tags
            # expect eventual consistency
            Fog.wait_for { self.reload rescue nil }
            for key, value in (self.tags = tags)
              connection.tags.create(
                :key          => key,
                :resource_id  => self.identity,
                :value        => value
              )
            end
          end

          if @server
            self.server = @server
          end
          true
        end