1.0beta3 release
diff --git a/docs/oauth2client.client.html b/docs/oauth2client.client.html
index fd34ab1..e3d266b 100644
--- a/docs/oauth2client.client.html
+++ b/docs/oauth2client.client.html
@@ -8,11 +8,10 @@
 <td valign=bottom>&nbsp;<br>
 <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="oauth2client.html"><font color="#ffffff">oauth2client</font></a>.client</strong></big></big></font></td
 ><td align=right valign=bottom
-><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/jcgregorio/projects/google-api-python-client/oauth2client/client.py">/home/jcgregorio/projects/google-api-python-client/oauth2client/client.py</a></font></td></tr></table>
-    <p><tt>An&nbsp;OAuth&nbsp;2.0&nbsp;client<br>
+><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/usr/local/google/home/jcgregorio/projects/apiclient/oauth2client/client.py">/usr/local/google/home/jcgregorio/projects/apiclient/oauth2client/client.py</a></font></td></tr></table>
+    <p><tt>An&nbsp;OAuth&nbsp;2.0&nbsp;client.<br>
 &nbsp;<br>
-Tools&nbsp;for&nbsp;interacting&nbsp;with&nbsp;OAuth&nbsp;2.0&nbsp;protected<br>
-resources.</tt></p>
+Tools&nbsp;for&nbsp;interacting&nbsp;with&nbsp;OAuth&nbsp;2.0&nbsp;protected&nbsp;resources.</tt></p>
 <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#aa55cc">
@@ -80,14 +79,15 @@
 <font color="#000000" face="helvetica, arial"><a name="AccessTokenCredentials">class <strong>AccessTokenCredentials</strong></a>(<a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;for&nbsp;OAuth&nbsp;2.0<br>
+<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;for&nbsp;OAuth&nbsp;2.0.<br>
 &nbsp;<br>
-<a href="#Credentials">Credentials</a>&nbsp;can&nbsp;be&nbsp;applied&nbsp;to&nbsp;an&nbsp;httplib2.Http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;using&nbsp;the&nbsp;<a href="#AccessTokenCredentials-authorize">authorize</a>()<br>
-method,&nbsp;which&nbsp;then&nbsp;signs&nbsp;each&nbsp;request&nbsp;from&nbsp;that&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;the&nbsp;OAuth&nbsp;2.0<br>
-access&nbsp;token.&nbsp;&nbsp;This&nbsp;set&nbsp;of&nbsp;credentials&nbsp;is&nbsp;for&nbsp;the&nbsp;use&nbsp;case&nbsp;where&nbsp;you&nbsp;have<br>
-acquired&nbsp;an&nbsp;OAuth&nbsp;2.0&nbsp;access_token&nbsp;from&nbsp;another&nbsp;place&nbsp;such&nbsp;as&nbsp;a&nbsp;JavaScript<br>
-client&nbsp;or&nbsp;another&nbsp;web&nbsp;application,&nbsp;and&nbsp;wish&nbsp;to&nbsp;use&nbsp;it&nbsp;from&nbsp;Python.&nbsp;Because<br>
-only&nbsp;the&nbsp;access_token&nbsp;is&nbsp;present&nbsp;it&nbsp;can&nbsp;not&nbsp;be&nbsp;refreshed&nbsp;and&nbsp;will&nbsp;in&nbsp;time<br>
+<a href="#Credentials">Credentials</a>&nbsp;can&nbsp;be&nbsp;applied&nbsp;to&nbsp;an&nbsp;httplib2.Http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;using&nbsp;the<br>
+<a href="#AccessTokenCredentials-authorize">authorize</a>()&nbsp;method,&nbsp;which&nbsp;then&nbsp;signs&nbsp;each&nbsp;request&nbsp;from&nbsp;that&nbsp;<a href="__builtin__.html#object">object</a><br>
+with&nbsp;the&nbsp;OAuth&nbsp;2.0&nbsp;access&nbsp;token.&nbsp;&nbsp;This&nbsp;set&nbsp;of&nbsp;credentials&nbsp;is&nbsp;for&nbsp;the<br>
+use&nbsp;case&nbsp;where&nbsp;you&nbsp;have&nbsp;acquired&nbsp;an&nbsp;OAuth&nbsp;2.0&nbsp;access_token&nbsp;from<br>
+another&nbsp;place&nbsp;such&nbsp;as&nbsp;a&nbsp;JavaScript&nbsp;client&nbsp;or&nbsp;another&nbsp;web<br>
+application,&nbsp;and&nbsp;wish&nbsp;to&nbsp;use&nbsp;it&nbsp;from&nbsp;Python.&nbsp;Because&nbsp;only&nbsp;the<br>
+access_token&nbsp;is&nbsp;present&nbsp;it&nbsp;can&nbsp;not&nbsp;be&nbsp;refreshed&nbsp;and&nbsp;will&nbsp;in&nbsp;time<br>
 expire.<br>
 &nbsp;<br>
 <a href="#AccessTokenCredentials">AccessTokenCredentials</a>&nbsp;objects&nbsp;may&nbsp;be&nbsp;safely&nbsp;pickled&nbsp;and&nbsp;unpickled.<br>
@@ -124,6 +124,10 @@
 &nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.</tt></dd></dl>
 
 <hr>
+Class methods defined here:<br>
+<dl><dt><a name="AccessTokenCredentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt></dl>
+
+<hr>
 Methods inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
 <dl><dt><a name="AccessTokenCredentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim&nbsp;the&nbsp;state&nbsp;down&nbsp;to&nbsp;something&nbsp;that&nbsp;can&nbsp;be&nbsp;pickled.</tt></dd></dl>
 
@@ -143,28 +147,43 @@
 &nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
 &nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#AccessTokenCredentials-authorize">authorize</a>(h)<br>
 &nbsp;<br>
-You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth<br>
-subclass&nbsp;of&nbsp;httplib2.Authenication&nbsp;because<br>
-it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is<br>
-needed&nbsp;for&nbsp;signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload<br>
-'request'&nbsp;with&nbsp;a&nbsp;closure&nbsp;that&nbsp;adds&nbsp;in&nbsp;the<br>
-Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original&nbsp;version<br>
-of&nbsp;'request()'.</tt></dd></dl>
+You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth&nbsp;subclass&nbsp;of&nbsp;httplib2.Authenication<br>
+because&nbsp;it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is&nbsp;needed&nbsp;for<br>
+signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload&nbsp;'request'&nbsp;with&nbsp;a&nbsp;closure<br>
+that&nbsp;adds&nbsp;in&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original<br>
+version&nbsp;of&nbsp;'request()'.</tt></dd></dl>
 
-<dl><dt><a name="AccessTokenCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;storage&nbsp;for&nbsp;the&nbsp;credential.<br>
+<dl><dt><a name="AccessTokenCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;for&nbsp;the&nbsp;credential.<br>
 &nbsp;<br>
 Args:<br>
-&nbsp;&nbsp;store:&nbsp;callable,&nbsp;a&nbsp;callable&nbsp;that&nbsp;when&nbsp;passed&nbsp;a&nbsp;Credential<br>
-&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.<br>
+&nbsp;&nbsp;store:&nbsp;<a href="#Storage">Storage</a>,&nbsp;an&nbsp;implementation&nbsp;of&nbsp;Stroage&nbsp;<a href="__builtin__.html#object">object</a>.<br>
 &nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
-&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.</tt></dd></dl>
+&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.&nbsp;&nbsp;This&nbsp;implementation&nbsp;uses<br>
+&nbsp;&nbsp;&nbsp;&nbsp;locking&nbsp;to&nbsp;check&nbsp;for&nbsp;updates&nbsp;before&nbsp;updating&nbsp;the<br>
+&nbsp;&nbsp;&nbsp;&nbsp;access_token.</tt></dd></dl>
+
+<dl><dt><a name="AccessTokenCredentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
 
 <hr>
 Data descriptors inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
-<dl><dt><strong>invalid</strong></dt>
-<dd><tt>True&nbsp;if&nbsp;the&nbsp;credentials&nbsp;are&nbsp;invalid,&nbsp;such&nbsp;as&nbsp;being&nbsp;revoked.</tt></dd>
+<dl><dt><strong>access_token_expired</strong></dt>
+<dd><tt>True&nbsp;if&nbsp;the&nbsp;credential&nbsp;is&nbsp;expired&nbsp;or&nbsp;invalid.<br>
+&nbsp;<br>
+If&nbsp;the&nbsp;token_expiry&nbsp;isn't&nbsp;set,&nbsp;we&nbsp;assume&nbsp;the&nbsp;token&nbsp;doesn't&nbsp;expire.</tt></dd>
 </dl>
 <hr>
+Class methods inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
+<dl><dt><a name="AccessTokenCredentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
+representation&nbsp;produced&nbsp;by&nbsp;<a href="#AccessTokenCredentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#AccessTokenCredentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
+&nbsp;&nbsp;<a href="#AccessTokenCredentials-to_json">to_json</a>().</tt></dd></dl>
+
+<hr>
 Data descriptors inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
 <dl><dt><strong>__dict__</strong></dt>
 <dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
@@ -172,6 +191,10 @@
 <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>
+<hr>
+Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
+<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
+
 </td></tr></table> <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
@@ -301,12 +324,12 @@
 <font color="#000000" face="helvetica, arial"><a name="AssertionCredentials">class <strong>AssertionCredentials</strong></a>(<a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt>Abstract&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;used&nbsp;for&nbsp;OAuth&nbsp;2.0&nbsp;assertion&nbsp;grants<br>
+<td colspan=2><tt>Abstract&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;used&nbsp;for&nbsp;OAuth&nbsp;2.0&nbsp;assertion&nbsp;grants.<br>
 &nbsp;<br>
-This&nbsp;credential&nbsp;does&nbsp;not&nbsp;require&nbsp;a&nbsp;flow&nbsp;to&nbsp;instantiate&nbsp;because&nbsp;it&nbsp;represents<br>
-a&nbsp;two&nbsp;legged&nbsp;flow,&nbsp;and&nbsp;therefore&nbsp;has&nbsp;all&nbsp;of&nbsp;the&nbsp;required&nbsp;information&nbsp;to<br>
-generate&nbsp;and&nbsp;refresh&nbsp;its&nbsp;own&nbsp;access&nbsp;tokens.&nbsp;&nbsp;It&nbsp;must&nbsp;be&nbsp;subclassed&nbsp;to<br>
-generate&nbsp;the&nbsp;appropriate&nbsp;assertion&nbsp;string.<br>
+This&nbsp;credential&nbsp;does&nbsp;not&nbsp;require&nbsp;a&nbsp;flow&nbsp;to&nbsp;instantiate&nbsp;because&nbsp;it<br>
+represents&nbsp;a&nbsp;two&nbsp;legged&nbsp;flow,&nbsp;and&nbsp;therefore&nbsp;has&nbsp;all&nbsp;of&nbsp;the&nbsp;required<br>
+information&nbsp;to&nbsp;generate&nbsp;and&nbsp;refresh&nbsp;its&nbsp;own&nbsp;access&nbsp;tokens.&nbsp;&nbsp;It&nbsp;must<br>
+be&nbsp;subclassed&nbsp;to&nbsp;generate&nbsp;the&nbsp;appropriate&nbsp;assertion&nbsp;string.<br>
 &nbsp;<br>
 <a href="#AssertionCredentials">AssertionCredentials</a>&nbsp;objects&nbsp;may&nbsp;be&nbsp;safely&nbsp;pickled&nbsp;and&nbsp;unpickled.<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
@@ -318,7 +341,7 @@
 </dl>
 <hr>
 Methods defined here:<br>
-<dl><dt><a name="AssertionCredentials-__init__"><strong>__init__</strong></a>(self, assertion_type, user_agent, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **kwargs)</dt><dd><tt>Constructor&nbsp;for&nbsp;AssertionFlowCredentials<br>
+<dl><dt><a name="AssertionCredentials-__init__"><strong>__init__</strong></a>(self, assertion_type, user_agent, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **unused_kwargs)</dt><dd><tt>Constructor&nbsp;for&nbsp;AssertionFlowCredentials.<br>
 &nbsp;<br>
 Args:<br>
 &nbsp;&nbsp;assertion_type:&nbsp;string,&nbsp;assertion&nbsp;type&nbsp;that&nbsp;will&nbsp;be&nbsp;declared&nbsp;to&nbsp;the&nbsp;auth<br>
@@ -347,28 +370,54 @@
 &nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
 &nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#AssertionCredentials-authorize">authorize</a>(h)<br>
 &nbsp;<br>
-You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth<br>
-subclass&nbsp;of&nbsp;httplib2.Authenication&nbsp;because<br>
-it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is<br>
-needed&nbsp;for&nbsp;signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload<br>
-'request'&nbsp;with&nbsp;a&nbsp;closure&nbsp;that&nbsp;adds&nbsp;in&nbsp;the<br>
-Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original&nbsp;version<br>
-of&nbsp;'request()'.</tt></dd></dl>
+You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth&nbsp;subclass&nbsp;of&nbsp;httplib2.Authenication<br>
+because&nbsp;it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is&nbsp;needed&nbsp;for<br>
+signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload&nbsp;'request'&nbsp;with&nbsp;a&nbsp;closure<br>
+that&nbsp;adds&nbsp;in&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original<br>
+version&nbsp;of&nbsp;'request()'.</tt></dd></dl>
 
-<dl><dt><a name="AssertionCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;storage&nbsp;for&nbsp;the&nbsp;credential.<br>
+<dl><dt><a name="AssertionCredentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;for&nbsp;the&nbsp;credential.<br>
 &nbsp;<br>
 Args:<br>
-&nbsp;&nbsp;store:&nbsp;callable,&nbsp;a&nbsp;callable&nbsp;that&nbsp;when&nbsp;passed&nbsp;a&nbsp;Credential<br>
-&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.<br>
+&nbsp;&nbsp;store:&nbsp;<a href="#Storage">Storage</a>,&nbsp;an&nbsp;implementation&nbsp;of&nbsp;Stroage&nbsp;<a href="__builtin__.html#object">object</a>.<br>
 &nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
-&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.</tt></dd></dl>
+&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.&nbsp;&nbsp;This&nbsp;implementation&nbsp;uses<br>
+&nbsp;&nbsp;&nbsp;&nbsp;locking&nbsp;to&nbsp;check&nbsp;for&nbsp;updates&nbsp;before&nbsp;updating&nbsp;the<br>
+&nbsp;&nbsp;&nbsp;&nbsp;access_token.</tt></dd></dl>
+
+<dl><dt><a name="AssertionCredentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
+
+<hr>
+Class methods inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
+<dl><dt><a name="AssertionCredentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;a&nbsp;JSON&nbsp;description&nbsp;of&nbsp;it.&nbsp;The&nbsp;JSON<br>
+should&nbsp;have&nbsp;been&nbsp;produced&nbsp;by&nbsp;calling&nbsp;.<a href="#AssertionCredentials-to_json">to_json</a>()&nbsp;on&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>.<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;data:&nbsp;dict,&nbsp;A&nbsp;deserialized&nbsp;JSON&nbsp;<a href="__builtin__.html#object">object</a>.<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass.</tt></dd></dl>
 
 <hr>
 Data descriptors inherited from <a href="oauth2client.client.html#OAuth2Credentials">OAuth2Credentials</a>:<br>
-<dl><dt><strong>invalid</strong></dt>
-<dd><tt>True&nbsp;if&nbsp;the&nbsp;credentials&nbsp;are&nbsp;invalid,&nbsp;such&nbsp;as&nbsp;being&nbsp;revoked.</tt></dd>
+<dl><dt><strong>access_token_expired</strong></dt>
+<dd><tt>True&nbsp;if&nbsp;the&nbsp;credential&nbsp;is&nbsp;expired&nbsp;or&nbsp;invalid.<br>
+&nbsp;<br>
+If&nbsp;the&nbsp;token_expiry&nbsp;isn't&nbsp;set,&nbsp;we&nbsp;assume&nbsp;the&nbsp;token&nbsp;doesn't&nbsp;expire.</tt></dd>
 </dl>
 <hr>
+Class methods inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
+<dl><dt><a name="AssertionCredentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
+representation&nbsp;produced&nbsp;by&nbsp;<a href="#AssertionCredentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#AssertionCredentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
+&nbsp;&nbsp;<a href="#AssertionCredentials-to_json">to_json</a>().</tt></dd></dl>
+
+<hr>
 Data descriptors inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
 <dl><dt><strong>__dict__</strong></dt>
 <dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
@@ -376,6 +425,10 @@
 <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>
+<hr>
+Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
+<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
+
 </td></tr></table> <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
@@ -385,8 +438,11 @@
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
 <td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Credentials">Credentials</a>&nbsp;objects.<br>
 &nbsp;<br>
-Subclasses&nbsp;must&nbsp;define&nbsp;an&nbsp;<a href="#Credentials-authorize">authorize</a>()&nbsp;method<br>
-that&nbsp;applies&nbsp;the&nbsp;credentials&nbsp;to&nbsp;an&nbsp;HTTP&nbsp;transport.<br>&nbsp;</tt></td></tr>
+Subclasses&nbsp;must&nbsp;define&nbsp;an&nbsp;<a href="#Credentials-authorize">authorize</a>()&nbsp;method&nbsp;that&nbsp;applies&nbsp;the&nbsp;credentials&nbsp;to<br>
+an&nbsp;HTTP&nbsp;transport.<br>
+&nbsp;<br>
+Subclasses&nbsp;must&nbsp;also&nbsp;specify&nbsp;a&nbsp;classmethod&nbsp;named&nbsp;'from_json'&nbsp;that&nbsp;takes&nbsp;a&nbsp;JSON<br>
+string&nbsp;as&nbsp;input&nbsp;and&nbsp;returns&nbsp;an&nbsp;instaniated&nbsp;Crentials&nbsp;<a href="__builtin__.html#object">object</a>.<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%">Methods defined here:<br>
 <dl><dt><a name="Credentials-authorize"><strong>authorize</strong></a>(self, http)</dt><dd><tt>Take&nbsp;an&nbsp;httplib2.Http&nbsp;instance&nbsp;(or&nbsp;equivalent)&nbsp;and<br>
@@ -395,6 +451,24 @@
 the&nbsp;appropriate&nbsp;headers&nbsp;and&nbsp;then&nbsp;delegates&nbsp;to&nbsp;the&nbsp;original<br>
 Http.request()&nbsp;method.</tt></dd></dl>
 
+<dl><dt><a name="Credentials-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="#Credentials">Credentials</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>
+&nbsp;&nbsp;&nbsp;from_json().</tt></dd></dl>
+
+<hr>
+Class methods defined here:<br>
+<dl><dt><a name="Credentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
+representation&nbsp;produced&nbsp;by&nbsp;<a href="#Credentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#Credentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
+&nbsp;&nbsp;<a href="#Credentials-to_json">to_json</a>().</tt></dd></dl>
+
 <hr>
 Data descriptors defined here:<br>
 <dl><dt><strong>__dict__</strong></dt>
@@ -403,6 +477,10 @@
 <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>
+<hr>
+Data and other attributes defined here:<br>
+<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
+
 </td></tr></table> <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
@@ -547,7 +625,7 @@
 <font color="#000000" face="helvetica, arial"><a name="OAuth2Credentials">class <strong>OAuth2Credentials</strong></a>(<a href="oauth2client.client.html#Credentials">Credentials</a>)</font></td></tr>
     
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
-<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;for&nbsp;OAuth&nbsp;2.0<br>
+<td colspan=2><tt><a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;for&nbsp;OAuth&nbsp;2.0.<br>
 &nbsp;<br>
 <a href="#Credentials">Credentials</a>&nbsp;can&nbsp;be&nbsp;applied&nbsp;to&nbsp;an&nbsp;httplib2.Http&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;using&nbsp;the&nbsp;<a href="#OAuth2Credentials-authorize">authorize</a>()<br>
 method,&nbsp;which&nbsp;then&nbsp;signs&nbsp;each&nbsp;request&nbsp;from&nbsp;that&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;with&nbsp;the&nbsp;OAuth&nbsp;2.0<br>
@@ -564,21 +642,20 @@
 Methods defined here:<br>
 <dl><dt><a name="OAuth2Credentials-__getstate__"><strong>__getstate__</strong></a>(self)</dt><dd><tt>Trim&nbsp;the&nbsp;state&nbsp;down&nbsp;to&nbsp;something&nbsp;that&nbsp;can&nbsp;be&nbsp;pickled.</tt></dd></dl>
 
-<dl><dt><a name="OAuth2Credentials-__init__"><strong>__init__</strong></a>(self, access_token, client_id, client_secret, refresh_token, token_expiry, token_uri, user_agent)</dt><dd><tt>Create&nbsp;an&nbsp;instance&nbsp;of&nbsp;<a href="#OAuth2Credentials">OAuth2Credentials</a><br>
+<dl><dt><a name="OAuth2Credentials-__init__"><strong>__init__</strong></a>(self, access_token, client_id, client_secret, refresh_token, token_expiry, token_uri, user_agent)</dt><dd><tt>Create&nbsp;an&nbsp;instance&nbsp;of&nbsp;<a href="#OAuth2Credentials">OAuth2Credentials</a>.<br>
 &nbsp;<br>
 This&nbsp;constructor&nbsp;is&nbsp;not&nbsp;usually&nbsp;called&nbsp;by&nbsp;the&nbsp;user,&nbsp;instead<br>
 <a href="#OAuth2Credentials">OAuth2Credentials</a>&nbsp;objects&nbsp;are&nbsp;instantiated&nbsp;by&nbsp;the&nbsp;<a href="#OAuth2WebServerFlow">OAuth2WebServerFlow</a>.<br>
 &nbsp;<br>
 Args:<br>
-&nbsp;&nbsp;token_uri:&nbsp;string,&nbsp;URI&nbsp;of&nbsp;token&nbsp;endpoint.<br>
+&nbsp;&nbsp;access_token:&nbsp;string,&nbsp;access&nbsp;token.<br>
 &nbsp;&nbsp;client_id:&nbsp;string,&nbsp;client&nbsp;identifier.<br>
 &nbsp;&nbsp;client_secret:&nbsp;string,&nbsp;client&nbsp;secret.<br>
-&nbsp;&nbsp;access_token:&nbsp;string,&nbsp;access&nbsp;token.<br>
-&nbsp;&nbsp;token_expiry:&nbsp;datetime,&nbsp;when&nbsp;the&nbsp;access_token&nbsp;expires.<br>
 &nbsp;&nbsp;refresh_token:&nbsp;string,&nbsp;refresh&nbsp;token.<br>
+&nbsp;&nbsp;token_expiry:&nbsp;datetime,&nbsp;when&nbsp;the&nbsp;access_token&nbsp;expires.<br>
+&nbsp;&nbsp;token_uri:&nbsp;string,&nbsp;URI&nbsp;of&nbsp;token&nbsp;endpoint.<br>
 &nbsp;&nbsp;user_agent:&nbsp;string,&nbsp;The&nbsp;HTTP&nbsp;User-Agent&nbsp;to&nbsp;provide&nbsp;for&nbsp;this&nbsp;application.<br>
 &nbsp;<br>
-&nbsp;<br>
 Notes:<br>
 &nbsp;&nbsp;store:&nbsp;callable,&nbsp;a&nbsp;callable&nbsp;that&nbsp;when&nbsp;passed&nbsp;a&nbsp;Credential<br>
 &nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.<br>
@@ -601,28 +678,54 @@
 &nbsp;&nbsp;h&nbsp;=&nbsp;httplib2.Http()<br>
 &nbsp;&nbsp;h&nbsp;=&nbsp;credentials.<a href="#OAuth2Credentials-authorize">authorize</a>(h)<br>
 &nbsp;<br>
-You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth<br>
-subclass&nbsp;of&nbsp;httplib2.Authenication&nbsp;because<br>
-it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is<br>
-needed&nbsp;for&nbsp;signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload<br>
-'request'&nbsp;with&nbsp;a&nbsp;closure&nbsp;that&nbsp;adds&nbsp;in&nbsp;the<br>
-Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original&nbsp;version<br>
-of&nbsp;'request()'.</tt></dd></dl>
+You&nbsp;can't&nbsp;create&nbsp;a&nbsp;new&nbsp;OAuth&nbsp;subclass&nbsp;of&nbsp;httplib2.Authenication<br>
+because&nbsp;it&nbsp;never&nbsp;gets&nbsp;passed&nbsp;the&nbsp;absolute&nbsp;URI,&nbsp;which&nbsp;is&nbsp;needed&nbsp;for<br>
+signing.&nbsp;So&nbsp;instead&nbsp;we&nbsp;have&nbsp;to&nbsp;overload&nbsp;'request'&nbsp;with&nbsp;a&nbsp;closure<br>
+that&nbsp;adds&nbsp;in&nbsp;the&nbsp;Authorization&nbsp;header&nbsp;and&nbsp;then&nbsp;calls&nbsp;the&nbsp;original<br>
+version&nbsp;of&nbsp;'request()'.</tt></dd></dl>
 
-<dl><dt><a name="OAuth2Credentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;storage&nbsp;for&nbsp;the&nbsp;credential.<br>
+<dl><dt><a name="OAuth2Credentials-set_store"><strong>set_store</strong></a>(self, store)</dt><dd><tt>Set&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;for&nbsp;the&nbsp;credential.<br>
 &nbsp;<br>
 Args:<br>
-&nbsp;&nbsp;store:&nbsp;callable,&nbsp;a&nbsp;callable&nbsp;that&nbsp;when&nbsp;passed&nbsp;a&nbsp;Credential<br>
-&nbsp;&nbsp;&nbsp;&nbsp;will&nbsp;store&nbsp;the&nbsp;credential&nbsp;back&nbsp;to&nbsp;where&nbsp;it&nbsp;came&nbsp;from.<br>
+&nbsp;&nbsp;store:&nbsp;<a href="#Storage">Storage</a>,&nbsp;an&nbsp;implementation&nbsp;of&nbsp;Stroage&nbsp;<a href="__builtin__.html#object">object</a>.<br>
 &nbsp;&nbsp;&nbsp;&nbsp;This&nbsp;is&nbsp;needed&nbsp;to&nbsp;store&nbsp;the&nbsp;latest&nbsp;access_token&nbsp;if&nbsp;it<br>
-&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.</tt></dd></dl>
+&nbsp;&nbsp;&nbsp;&nbsp;has&nbsp;expired&nbsp;and&nbsp;been&nbsp;refreshed.&nbsp;&nbsp;This&nbsp;implementation&nbsp;uses<br>
+&nbsp;&nbsp;&nbsp;&nbsp;locking&nbsp;to&nbsp;check&nbsp;for&nbsp;updates&nbsp;before&nbsp;updating&nbsp;the<br>
+&nbsp;&nbsp;&nbsp;&nbsp;access_token.</tt></dd></dl>
+
+<dl><dt><a name="OAuth2Credentials-to_json"><strong>to_json</strong></a>(self)</dt></dl>
+
+<hr>
+Class methods defined here:<br>
+<dl><dt><a name="OAuth2Credentials-from_json"><strong>from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;from&nbsp;a&nbsp;JSON&nbsp;description&nbsp;of&nbsp;it.&nbsp;The&nbsp;JSON<br>
+should&nbsp;have&nbsp;been&nbsp;produced&nbsp;by&nbsp;calling&nbsp;.<a href="#OAuth2Credentials-to_json">to_json</a>()&nbsp;on&nbsp;the&nbsp;<a href="__builtin__.html#object">object</a>.<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;data:&nbsp;dict,&nbsp;A&nbsp;deserialized&nbsp;JSON&nbsp;<a href="__builtin__.html#object">object</a>.<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass.</tt></dd></dl>
 
 <hr>
 Data descriptors defined here:<br>
-<dl><dt><strong>invalid</strong></dt>
-<dd><tt>True&nbsp;if&nbsp;the&nbsp;credentials&nbsp;are&nbsp;invalid,&nbsp;such&nbsp;as&nbsp;being&nbsp;revoked.</tt></dd>
+<dl><dt><strong>access_token_expired</strong></dt>
+<dd><tt>True&nbsp;if&nbsp;the&nbsp;credential&nbsp;is&nbsp;expired&nbsp;or&nbsp;invalid.<br>
+&nbsp;<br>
+If&nbsp;the&nbsp;token_expiry&nbsp;isn't&nbsp;set,&nbsp;we&nbsp;assume&nbsp;the&nbsp;token&nbsp;doesn't&nbsp;expire.</tt></dd>
 </dl>
 <hr>
+Class methods inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
+<dl><dt><a name="OAuth2Credentials-new_from_json"><strong>new_from_json</strong></a>(cls, s)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Utility&nbsp;class&nbsp;method&nbsp;to&nbsp;instantiate&nbsp;a&nbsp;<a href="#Credentials">Credentials</a>&nbsp;subclass&nbsp;from&nbsp;a&nbsp;JSON<br>
+representation&nbsp;produced&nbsp;by&nbsp;<a href="#OAuth2Credentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;s:&nbsp;string,&nbsp;JSON&nbsp;from&nbsp;<a href="#OAuth2Credentials-to_json">to_json</a>().<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;An&nbsp;instance&nbsp;of&nbsp;the&nbsp;subclass&nbsp;of&nbsp;<a href="#Credentials">Credentials</a>&nbsp;that&nbsp;was&nbsp;serialized&nbsp;with<br>
+&nbsp;&nbsp;<a href="#OAuth2Credentials-to_json">to_json</a>().</tt></dd></dl>
+
+<hr>
 Data descriptors inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
 <dl><dt><strong>__dict__</strong></dt>
 <dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
@@ -630,6 +733,10 @@
 <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>
+<hr>
+Data and other attributes inherited from <a href="oauth2client.client.html#Credentials">Credentials</a>:<br>
+<dl><dt><strong>NON_SERIALIZED_MEMBERS</strong> = ['store']</dl>
+
 </td></tr></table> <p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#ffc8d8">
@@ -648,7 +755,7 @@
 </dl>
 <hr>
 Methods defined here:<br>
-<dl><dt><a name="OAuth2WebServerFlow-__init__"><strong>__init__</strong></a>(self, client_id, client_secret, scope, user_agent, auth_uri<font color="#909090">='https://accounts.google.com/o/oauth2/auth'</font>, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **kwargs)</dt><dd><tt>Constructor&nbsp;for&nbsp;<a href="#OAuth2WebServerFlow">OAuth2WebServerFlow</a><br>
+<dl><dt><a name="OAuth2WebServerFlow-__init__"><strong>__init__</strong></a>(self, client_id, client_secret, scope, user_agent, auth_uri<font color="#909090">='https://accounts.google.com/o/oauth2/auth'</font>, token_uri<font color="#909090">='https://accounts.google.com/o/oauth2/token'</font>, **kwargs)</dt><dd><tt>Constructor&nbsp;for&nbsp;<a href="#OAuth2WebServerFlow">OAuth2WebServerFlow</a>.<br>
 &nbsp;<br>
 Args:<br>
 &nbsp;&nbsp;client_id:&nbsp;string,&nbsp;client&nbsp;identifier.<br>
@@ -699,19 +806,48 @@
 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
 <td colspan=2><tt>Base&nbsp;class&nbsp;for&nbsp;all&nbsp;<a href="#Storage">Storage</a>&nbsp;objects.<br>
 &nbsp;<br>
-Store&nbsp;and&nbsp;retrieve&nbsp;a&nbsp;single&nbsp;credential.<br>&nbsp;</tt></td></tr>
+Store&nbsp;and&nbsp;retrieve&nbsp;a&nbsp;single&nbsp;credential.&nbsp;&nbsp;This&nbsp;class&nbsp;supports&nbsp;locking<br>
+such&nbsp;that&nbsp;multiple&nbsp;processes&nbsp;and&nbsp;threads&nbsp;can&nbsp;operate&nbsp;on&nbsp;a&nbsp;single<br>
+store.<br>&nbsp;</tt></td></tr>
 <tr><td>&nbsp;</td>
 <td width="100%">Methods defined here:<br>
+<dl><dt><a name="Storage-acquire_lock"><strong>acquire_lock</strong></a>(self)</dt><dd><tt>Acquires&nbsp;any&nbsp;lock&nbsp;necessary&nbsp;to&nbsp;access&nbsp;this&nbsp;<a href="#Storage">Storage</a>.<br>
+&nbsp;<br>
+This&nbsp;lock&nbsp;is&nbsp;not&nbsp;reentrant.</tt></dd></dl>
+
 <dl><dt><a name="Storage-get"><strong>get</strong></a>(self)</dt><dd><tt>Retrieve&nbsp;credential.<br>
 &nbsp;<br>
+The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;*not*&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
+&nbsp;<br>
 Returns:<br>
 &nbsp;&nbsp;oauth2client.client.<a href="#Credentials">Credentials</a></tt></dd></dl>
 
-<dl><dt><a name="Storage-put"><strong>put</strong></a>(self, credentials)</dt><dd><tt>Write&nbsp;a&nbsp;credential.<br>
+<dl><dt><a name="Storage-locked_get"><strong>locked_get</strong></a>(self)</dt><dd><tt>Retrieve&nbsp;credential.<br>
+&nbsp;<br>
+The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
+&nbsp;<br>
+Returns:<br>
+&nbsp;&nbsp;oauth2client.client.<a href="#Credentials">Credentials</a></tt></dd></dl>
+
+<dl><dt><a name="Storage-locked_put"><strong>locked_put</strong></a>(self, credentials)</dt><dd><tt>Write&nbsp;a&nbsp;credential.<br>
+&nbsp;<br>
+The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
 &nbsp;<br>
 Args:<br>
 &nbsp;&nbsp;credentials:&nbsp;<a href="#Credentials">Credentials</a>,&nbsp;the&nbsp;credentials&nbsp;to&nbsp;store.</tt></dd></dl>
 
+<dl><dt><a name="Storage-put"><strong>put</strong></a>(self, credentials)</dt><dd><tt>Write&nbsp;a&nbsp;credential.<br>
+&nbsp;<br>
+The&nbsp;<a href="#Storage">Storage</a>&nbsp;lock&nbsp;must&nbsp;be&nbsp;held&nbsp;when&nbsp;this&nbsp;is&nbsp;called.<br>
+&nbsp;<br>
+Args:<br>
+&nbsp;&nbsp;credentials:&nbsp;<a href="#Credentials">Credentials</a>,&nbsp;the&nbsp;credentials&nbsp;to&nbsp;store.</tt></dd></dl>
+
+<dl><dt><a name="Storage-release_lock"><strong>release_lock</strong></a>(self)</dt><dd><tt>Release&nbsp;the&nbsp;<a href="#Storage">Storage</a>&nbsp;lock.<br>
+&nbsp;<br>
+Trying&nbsp;to&nbsp;release&nbsp;a&nbsp;lock&nbsp;that&nbsp;isn't&nbsp;held&nbsp;will&nbsp;result&nbsp;in&nbsp;a<br>
+RuntimeError.</tt></dd></dl>
+
 <hr>
 Data descriptors defined here:<br>
 <dl><dt><strong>__dict__</strong></dt>
@@ -727,7 +863,9 @@
 <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
     
 <tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
-<td width="100%"><strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'</td></tr></table><p>
+<td width="100%"><strong>EXPIRY_FORMAT</strong> = '%Y-%m-%dT%H:%M:%S.%fZ'<br>
+<strong>__author__</strong> = 'jcgregorio@google.com (Joe Gregorio)'<br>
+<strong>logger</strong> = &lt;logging.Logger instance&gt;</td></tr></table><p>
 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
 <tr bgcolor="#7799ee">
 <td colspan=3 valign=bottom>&nbsp;<br>