Refresh docs
diff --git a/docs/apiclient.http.html b/docs/apiclient.http.html
index 0aff590..8f06991 100644
--- a/docs/apiclient.http.html
+++ b/docs/apiclient.http.html
@@ -49,6 +49,8 @@
 </font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#HttpMockSequence">HttpMockSequence</a>
 </font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#HttpRequest">HttpRequest</a>
 </font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#HttpRequestMock">HttpRequestMock</a>
+</font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#MediaDownloadProgress">MediaDownloadProgress</a>
+</font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#MediaIoBaseDownload">MediaIoBaseDownload</a>
 </font></dt><dt><font face="helvetica, arial"><a href="apiclient.http.html#MediaUpload">MediaUpload</a>
 </font></dt><dd>
 <dl>
@@ -69,7 +71,26 @@
 <font color="#000000" face="helvetica, arial"><a name="BatchHttpRequest">class <strong>BatchHttpRequest</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>Batches&nbsp;multiple&nbsp;<a href="#HttpRequest">HttpRequest</a>&nbsp;objects&nbsp;into&nbsp;a&nbsp;single&nbsp;HTTP&nbsp;request.<br>&nbsp;</tt></td></tr>
+<td colspan=2><tt>Batches&nbsp;multiple&nbsp;<a href="#HttpRequest">HttpRequest</a>&nbsp;objects&nbsp;into&nbsp;a&nbsp;single&nbsp;HTTP&nbsp;request.<br>
+&nbsp;<br>
+Example:<br>
+&nbsp;&nbsp;from&nbsp;apiclient.http&nbsp;import&nbsp;<a href="#BatchHttpRequest">BatchHttpRequest</a><br>
+&nbsp;<br>
+&nbsp;&nbsp;def&nbsp;list_animals(request_id,&nbsp;response):<br>
+&nbsp;&nbsp;&nbsp;&nbsp;"""Do&nbsp;something&nbsp;with&nbsp;the&nbsp;animals&nbsp;list&nbsp;response."""<br>
+&nbsp;&nbsp;&nbsp;&nbsp;pass<br>
+&nbsp;<br>
+&nbsp;&nbsp;def&nbsp;list_farmers(request_id,&nbsp;response):<br>
+&nbsp;&nbsp;&nbsp;&nbsp;"""Do&nbsp;something&nbsp;with&nbsp;the&nbsp;farmers&nbsp;list&nbsp;response."""<br>
+&nbsp;&nbsp;&nbsp;&nbsp;pass<br>
+&nbsp;<br>
+&nbsp;&nbsp;service&nbsp;=&nbsp;build('farm',&nbsp;'v2')<br>
+&nbsp;<br>
+&nbsp;&nbsp;batch&nbsp;=&nbsp;<a href="#BatchHttpRequest">BatchHttpRequest</a>()<br>
+&nbsp;<br>
+&nbsp;&nbsp;batch.<a href="#BatchHttpRequest-add">add</a>(service.animals().list(),&nbsp;list_animals)<br>
+&nbsp;&nbsp;batch.<a href="#BatchHttpRequest-add">add</a>(service.farmers().list(),&nbsp;list_farmers)<br>
+&nbsp;&nbsp;batch.<a href="#BatchHttpRequest-execute">execute</a>(http)<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%">Methods defined here:<br>
 <dl><dt><a name="BatchHttpRequest-__init__"><strong>__init__</strong></a>(self, callback<font color="#909090">=None</font>, batch_uri<font color="#909090">=None</font>)</dt><dd><tt>Constructor&nbsp;for&nbsp;a&nbsp;<a href="#BatchHttpRequest">BatchHttpRequest</a>.<br>
@@ -102,7 +123,7 @@
 &nbsp;&nbsp;None<br>
 &nbsp;<br>
 Raises:<br>
-&nbsp;&nbsp;BatchError&nbsp;if&nbsp;a&nbsp;resumable&nbsp;request&nbsp;is&nbsp;added&nbsp;to&nbsp;a&nbsp;batch.<br>
+&nbsp;&nbsp;BatchError&nbsp;if&nbsp;a&nbsp;media&nbsp;request&nbsp;is&nbsp;added&nbsp;to&nbsp;a&nbsp;batch.<br>
 &nbsp;&nbsp;KeyError&nbsp;is&nbsp;the&nbsp;request_id&nbsp;is&nbsp;not&nbsp;unique.</tt></dd></dl>
 
 <dl><dt><a name="BatchHttpRequest-execute"><strong>execute</strong></a>(self, http<font color="#909090">=None</font>)</dt><dd><tt>Execute&nbsp;all&nbsp;the&nbsp;requests&nbsp;as&nbsp;a&nbsp;single&nbsp;batched&nbsp;HTTP&nbsp;request.<br>
@@ -239,11 +260,11 @@
 &nbsp;<br>
 Example:<br>
 &nbsp;<br>
-&nbsp;&nbsp;media&nbsp;=&nbsp;<a href="#MediaFileUpload">MediaFileUpload</a>('smiley.png',&nbsp;mimetype='image/png',<br>
+&nbsp;&nbsp;media&nbsp;=&nbsp;<a href="#MediaFileUpload">MediaFileUpload</a>('cow.png',&nbsp;mimetype='image/png',<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chunksize=1000,&nbsp;resumable=True)<br>
-&nbsp;&nbsp;request&nbsp;=&nbsp;service.objects().insert(<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bucket=buckets['items'][0]['id'],<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name='smiley.png',<br>
+&nbsp;&nbsp;request&nbsp;=&nbsp;farm.animals().insert(<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id='cow',<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name='cow.png',<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;media_body=media)<br>
 &nbsp;<br>
 &nbsp;&nbsp;response&nbsp;=&nbsp;None<br>
@@ -312,6 +333,36 @@
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
 <td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#000000" face="helvetica, arial"><a name="MediaDownloadProgress">class <strong>MediaDownloadProgress</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+    
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
+<td colspan=2><tt>Status&nbsp;of&nbsp;a&nbsp;resumable&nbsp;download.<br>&nbsp;</tt></td></tr>
+<tr><td>&nbsp;</td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="MediaDownloadProgress-__init__"><strong>__init__</strong></a>(self, resumable_progress, total_size)</dt><dd><tt>Constructor.<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;resumable_progress:&nbsp;int,&nbsp;bytes&nbsp;received&nbsp;so&nbsp;far.<br>
+&nbsp;&nbsp;total_size:&nbsp;int,&nbsp;total&nbsp;bytes&nbsp;in&nbsp;complete&nbsp;download.</tt></dd></dl>
+
+<dl><dt><a name="MediaDownloadProgress-progress"><strong>progress</strong></a>(self)</dt><dd><tt>Percent&nbsp;of&nbsp;download&nbsp;completed,&nbsp;as&nbsp;a&nbsp;float.<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;the&nbsp;percentage&nbsp;complete&nbsp;as&nbsp;a&nbsp;float,&nbsp;returning&nbsp;0.0&nbsp;if&nbsp;the&nbsp;total&nbsp;size&nbsp;of<br>
+&nbsp;&nbsp;the&nbsp;download&nbsp;is&nbsp;unknown.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
+</td></tr></table> <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom>&nbsp;<br>
 <font color="#000000" face="helvetica, arial"><a name="MediaFileUpload">class <strong>MediaFileUpload</strong></a>(<a href="apiclient.http.html#MediaUpload">MediaUpload</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
@@ -321,11 +372,11 @@
 method.&nbsp;For&nbsp;example,&nbsp;if&nbsp;we&nbsp;had&nbsp;a&nbsp;service&nbsp;that&nbsp;allowed&nbsp;uploading&nbsp;images:<br>
 &nbsp;<br>
 &nbsp;<br>
-&nbsp;&nbsp;media&nbsp;=&nbsp;<a href="#MediaFileUpload">MediaFileUpload</a>('smiley.png',&nbsp;mimetype='image/png',<br>
+&nbsp;&nbsp;media&nbsp;=&nbsp;<a href="#MediaFileUpload">MediaFileUpload</a>('cow.png',&nbsp;mimetype='image/png',<br>
 &nbsp;&nbsp;&nbsp;&nbsp;chunksize=1024*1024,&nbsp;resumable=True)<br>
-&nbsp;&nbsp;service.objects().insert(<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bucket=buckets['items'][0]['id'],<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name='smiley.png',<br>
+&nbsp;&nbsp;farm.animals()..insert(<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id='cow',<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name='cow.png',<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;media_body=media).execute()<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%"><dl><dt>Method resolution order:</dt>
@@ -376,7 +427,7 @@
 Returns:<br>
 &nbsp;&nbsp;Size&nbsp;of&nbsp;the&nbsp;body,&nbsp;or&nbsp;None&nbsp;of&nbsp;the&nbsp;size&nbsp;is&nbsp;unknown.</tt></dd></dl>
 
-<dl><dt><a name="MediaFileUpload-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>Creating&nbsp;a&nbsp;JSON&nbsp;representation&nbsp;of&nbsp;an&nbsp;instance&nbsp;of&nbsp;Credentials.<br>
+<dl><dt><a name="MediaFileUpload-to_json"><strong>to_json</strong></a>(self)</dt><dd><tt>Creating&nbsp;a&nbsp;JSON&nbsp;representation&nbsp;of&nbsp;an&nbsp;instance&nbsp;of&nbsp;<a href="#MediaFileUpload">MediaFileUpload</a>.<br>
 &nbsp;<br>
 Returns:<br>
 &nbsp;&nbsp;&nbsp;string,&nbsp;a&nbsp;JSON&nbsp;representation&nbsp;of&nbsp;this&nbsp;instance,&nbsp;suitable&nbsp;to&nbsp;pass&nbsp;to<br>
@@ -416,7 +467,7 @@
 <td colspan=2><tt><a href="#MediaUpload">MediaUpload</a>&nbsp;for&nbsp;a&nbsp;chunk&nbsp;of&nbsp;bytes.<br>
 &nbsp;<br>
 Construct&nbsp;a&nbsp;<a href="#MediaFileUpload">MediaFileUpload</a>&nbsp;and&nbsp;pass&nbsp;as&nbsp;the&nbsp;media_body&nbsp;parameter&nbsp;of&nbsp;the<br>
-method.&nbsp;For&nbsp;example,&nbsp;if&nbsp;we&nbsp;had&nbsp;a&nbsp;service&nbsp;that&nbsp;allowed&nbsp;plain&nbsp;text:<br>&nbsp;</tt></td></tr>
+method.<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%"><dl><dt>Method resolution order:</dt>
 <dd><a href="apiclient.http.html#MediaInMemoryUpload">MediaInMemoryUpload</a></dd>
@@ -500,6 +551,60 @@
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
 <td colspan=3 valign=bottom>&nbsp;<br>
+<font color="#000000" face="helvetica, arial"><a name="MediaIoBaseDownload">class <strong>MediaIoBaseDownload</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
+    
+<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
+<td colspan=2><tt>"Download&nbsp;media&nbsp;resources.<br>
+&nbsp;<br>
+Note&nbsp;that&nbsp;the&nbsp;Python&nbsp;file&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;is&nbsp;compatible&nbsp;with&nbsp;io.Base&nbsp;and&nbsp;can&nbsp;be&nbsp;used<br>
+with&nbsp;this&nbsp;class&nbsp;also.<br>
+&nbsp;<br>
+&nbsp;<br>
+Example:<br>
+&nbsp;&nbsp;request&nbsp;=&nbsp;farms.animals().get_media(id='cow')<br>
+&nbsp;&nbsp;fh&nbsp;=&nbsp;io.FileIO('cow.png',&nbsp;mode='wb')<br>
+&nbsp;&nbsp;downloader&nbsp;=&nbsp;<a href="#MediaIoBaseDownload">MediaIoBaseDownload</a>(fh,&nbsp;request,&nbsp;chunksize=1024*1024)<br>
+&nbsp;<br>
+&nbsp;&nbsp;done&nbsp;=&nbsp;False<br>
+&nbsp;&nbsp;while&nbsp;done&nbsp;is&nbsp;False:<br>
+&nbsp;&nbsp;&nbsp;&nbsp;status,&nbsp;done&nbsp;=&nbsp;downloader.<a href="#MediaIoBaseDownload-next_chunk">next_chunk</a>()<br>
+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;status:<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;"Download&nbsp;%d%%."&nbsp;%&nbsp;int(status.progress()&nbsp;*&nbsp;100)<br>
+&nbsp;&nbsp;print&nbsp;"Download&nbsp;Complete!"<br>&nbsp;</tt></td></tr>
+<tr><td>&nbsp;</td>
+<td width="100%">Methods defined here:<br>
+<dl><dt><a name="MediaIoBaseDownload-__init__"><strong>__init__</strong></a>(self, fh, request, chunksize<font color="#909090">=524288</font>)</dt><dd><tt>Constructor.<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;fh:&nbsp;io.Base&nbsp;or&nbsp;file&nbsp;<a href="__builtin__.html#object">object</a>,&nbsp;The&nbsp;stream&nbsp;in&nbsp;which&nbsp;to&nbsp;write&nbsp;the&nbsp;downloaded<br>
+&nbsp;&nbsp;&nbsp;&nbsp;bytes.<br>
+&nbsp;&nbsp;request:&nbsp;apiclient.http.<a href="#HttpRequest">HttpRequest</a>,&nbsp;the&nbsp;media&nbsp;request&nbsp;to&nbsp;perform&nbsp;in<br>
+&nbsp;&nbsp;&nbsp;&nbsp;chunks.<br>
+&nbsp;&nbsp;chunksize:&nbsp;int,&nbsp;File&nbsp;will&nbsp;be&nbsp;downloaded&nbsp;in&nbsp;chunks&nbsp;of&nbsp;this&nbsp;many&nbsp;bytes.</tt></dd></dl>
+
+<dl><dt><a name="MediaIoBaseDownload-next_chunk"><strong>next_chunk</strong></a>(self)</dt><dd><tt>Get&nbsp;the&nbsp;next&nbsp;chunk&nbsp;of&nbsp;the&nbsp;download.<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;(status,&nbsp;done):&nbsp;(MediaDownloadStatus,&nbsp;boolean)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;value&nbsp;of&nbsp;'done'&nbsp;will&nbsp;be&nbsp;True&nbsp;when&nbsp;the&nbsp;media&nbsp;has&nbsp;been&nbsp;fully<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;downloaded.<br>
+&nbsp;<br>
+Raises:<br>
+&nbsp;&nbsp;apiclient.errors.HttpError&nbsp;if&nbsp;the&nbsp;response&nbsp;was&nbsp;not&nbsp;a&nbsp;2xx.<br>
+&nbsp;&nbsp;httplib2.Error&nbsp;if&nbsp;a&nbsp;transport&nbsp;error&nbsp;has&nbsp;occured.</tt></dd></dl>
+
+<hr>
+Data descriptors defined here:<br>
+<dl><dt><strong>__dict__</strong></dt>
+<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
+<dl><dt><strong>__weakref__</strong></dt>
+<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
+</dl>
+</td></tr></table> <p>
+<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
+<tr bgcolor="#ffc8d8">
+<td colspan=3 valign=bottom>&nbsp;<br>
 <font color="#000000" face="helvetica, arial"><a name="MediaIoBaseUpload">class <strong>MediaIoBaseUpload</strong></a>(<a href="apiclient.http.html#MediaUpload">MediaUpload</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
@@ -511,9 +616,9 @@
 &nbsp;&nbsp;fh&nbsp;=&nbsp;io.BytesIO('...Some&nbsp;data&nbsp;to&nbsp;upload...')<br>
 &nbsp;&nbsp;media&nbsp;=&nbsp;<a href="#MediaIoBaseUpload">MediaIoBaseUpload</a>(fh,&nbsp;mimetype='image/png',<br>
 &nbsp;&nbsp;&nbsp;&nbsp;chunksize=1024*1024,&nbsp;resumable=True)<br>
-&nbsp;&nbsp;service.objects().insert(<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bucket='a_bucket_id',<br>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name='smiley.png',<br>
+&nbsp;&nbsp;farm.animals().insert(<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id='cow',<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name='cow.png',<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;media_body=media).execute()<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%"><dl><dt>Method resolution order:</dt>