Refresh docs
diff --git a/docs/dyn/analytics_v3.data.ga.html b/docs/dyn/analytics_v3.data.ga.html
index e8719db..b59555e 100644
--- a/docs/dyn/analytics_v3.data.ga.html
+++ b/docs/dyn/analytics_v3.data.ga.html
@@ -108,6 +108,7 @@
     "totalResults": 42, # The total number of rows for the query, regardless of the number of rows in the response.
     "itemsPerPage": 42, # The maximum number of rows the response can contain, regardless of the actual number of rows returned. Its value ranges from 1 to 10,000 with a value of 1000 by default, or otherwise specified by the max-results query parameter.
     "totalsForAllResults": { # Total values for the requested metrics over all the results, not just the results returned in this response. The order of the metric totals is same as the metric order specified in the request.
+      "a_key": "A String", # Key-value pair for the total value of a metric. Key is the metric name and the value is the total value for that metric.
     },
     "nextLink": "A String", # Link to next page for this Analytics data query.
     "id": "A String", # Unique ID for this data response.
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
index 03e81dd..29631bc 100644
--- a/docs/dyn/bigquery_v2.jobs.html
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -216,6 +216,7 @@
           "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.
         },
         "properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.
+          "a_key": "A String", # Key-value property pairs.
         },
       },
       "id": "A String", # [Output-only] Opaque ID field of the job
@@ -391,6 +392,7 @@
         "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.
       },
       "properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.
+        "a_key": "A String", # Key-value property pairs.
       },
     },
     "id": "A String", # [Output-only] Opaque ID field of the job
@@ -514,6 +516,7 @@
           "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.
         },
         "properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.
+          "a_key": "A String", # Key-value property pairs.
         },
       },
       "id": "A String", # [Output-only] Opaque ID field of the job
@@ -661,6 +664,7 @@
             "printHeader": True or False, # [Optional] Whether to print out a heder row in the results. Default is true.
           },
           "properties": { # [Optional] Properties providing extra details about how the job should be run. Not used for most jobs.
+            "a_key": "A String", # Key-value property pairs.
           },
         },
         "id": "A String", # Unique opaque ID of the job.
diff --git a/docs/dyn/calendar_v3.colors.html b/docs/dyn/calendar_v3.colors.html
index 763c132..ecbf926 100644
--- a/docs/dyn/calendar_v3.colors.html
+++ b/docs/dyn/calendar_v3.colors.html
@@ -89,9 +89,17 @@
 
     {
     "calendar": { # Palette of calendar colors, mapping from the color ID to its definition. An 'calendarListEntry' resource refers to one of these color IDs in its 'color' field. Read-only.
+      "a_key": { # A calendar color defintion.
+        "foreground": "A String", # The foreground color that can be used to write on top of a background with 'background' color.
+        "background": "A String", # The background color associated with this color definition.
+      },
     },
     "updated": "A String", # Last modification time of the color palette (as a RFC 3339 timestamp). Read-only.
     "event": { # Palette of event colors, mapping from the color ID to its definition. An 'event' resource may refer to one of these color IDs in its 'color' field. Read-only.
+      "a_key": { # An event color definition.
+        "foreground": "A String", # The foreground color that can be used to write on top of a background with 'background' color.
+        "background": "A String", # The background color associated with this color definition.
+      },
     },
     "kind": "calendar#colors", # Type of the resource ("calendar#colors").
   }</pre>
diff --git a/docs/dyn/calendar_v3.events.html b/docs/dyn/calendar_v3.events.html
index 8dd5f60..135e3df 100644
--- a/docs/dyn/calendar_v3.events.html
+++ b/docs/dyn/calendar_v3.events.html
@@ -183,6 +183,7 @@
       "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
       "gadget": { # A gadget that extends this event.
         "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
         },
         "title": "A String", # The gadget's title.
         "height": 42, # The gadget's height in pixels. Optional.
@@ -203,8 +204,10 @@
       "iCalUID": "A String", # Event ID in the iCalendar format.
       "extendedProperties": { # Extended properties of the event.
         "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
         },
         "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
         },
       },
       "endTimeUnspecified": True or False,
@@ -308,6 +311,7 @@
     "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
     "gadget": { # A gadget that extends this event.
       "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
       },
       "title": "A String", # The gadget's title.
       "height": 42, # The gadget's height in pixels. Optional.
@@ -328,8 +332,10 @@
     "iCalUID": "A String", # Event ID in the iCalendar format.
     "extendedProperties": { # Extended properties of the event.
       "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
       },
       "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
       },
     },
     "endTimeUnspecified": True or False,
@@ -427,6 +433,7 @@
       "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
       "gadget": { # A gadget that extends this event.
         "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
         },
         "title": "A String", # The gadget's title.
         "height": 42, # The gadget's height in pixels. Optional.
@@ -447,8 +454,10 @@
       "iCalUID": "A String", # Event ID in the iCalendar format.
       "extendedProperties": { # Extended properties of the event.
         "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
         },
         "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
         },
       },
       "endTimeUnspecified": True or False,
@@ -552,6 +561,7 @@
     "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
     "gadget": { # A gadget that extends this event.
       "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
       },
       "title": "A String", # The gadget's title.
       "height": 42, # The gadget's height in pixels. Optional.
@@ -572,8 +582,10 @@
     "iCalUID": "A String", # Event ID in the iCalendar format.
     "extendedProperties": { # Extended properties of the event.
       "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
       },
       "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
       },
     },
     "endTimeUnspecified": True or False,
@@ -672,6 +684,7 @@
       "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
       "gadget": { # A gadget that extends this event.
         "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
         },
         "title": "A String", # The gadget's title.
         "height": 42, # The gadget's height in pixels. Optional.
@@ -692,8 +705,10 @@
       "iCalUID": "A String", # Event ID in the iCalendar format.
       "extendedProperties": { # Extended properties of the event.
         "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
         },
         "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
         },
       },
       "endTimeUnspecified": True or False,
@@ -820,6 +835,7 @@
           "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
           "gadget": { # A gadget that extends this event.
             "preferences": { # Preferences.
+              "a_key": "A String", # The preference name and corresponding value.
             },
             "title": "A String", # The gadget's title.
             "height": 42, # The gadget's height in pixels. Optional.
@@ -840,8 +856,10 @@
           "iCalUID": "A String", # Event ID in the iCalendar format.
           "extendedProperties": { # Extended properties of the event.
             "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+              "a_key": "A String", # The name of the shared property and the corresponding value.
             },
             "private": { # Properties that are private to the copy of the event that appears on this calendar.
+              "a_key": "A String", # The name of the private property and the corresponding value.
             },
           },
           "endTimeUnspecified": True or False,
@@ -1003,6 +1021,7 @@
           "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
           "gadget": { # A gadget that extends this event.
             "preferences": { # Preferences.
+              "a_key": "A String", # The preference name and corresponding value.
             },
             "title": "A String", # The gadget's title.
             "height": 42, # The gadget's height in pixels. Optional.
@@ -1023,8 +1042,10 @@
           "iCalUID": "A String", # Event ID in the iCalendar format.
           "extendedProperties": { # Extended properties of the event.
             "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+              "a_key": "A String", # The name of the shared property and the corresponding value.
             },
             "private": { # Properties that are private to the copy of the event that appears on this calendar.
+              "a_key": "A String", # The name of the private property and the corresponding value.
             },
           },
           "endTimeUnspecified": True or False,
@@ -1158,6 +1179,7 @@
       "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
       "gadget": { # A gadget that extends this event.
         "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
         },
         "title": "A String", # The gadget's title.
         "height": 42, # The gadget's height in pixels. Optional.
@@ -1178,8 +1200,10 @@
       "iCalUID": "A String", # Event ID in the iCalendar format.
       "extendedProperties": { # Extended properties of the event.
         "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
         },
         "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
         },
       },
       "endTimeUnspecified": True or False,
@@ -1284,6 +1308,7 @@
     "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
     "gadget": { # A gadget that extends this event.
       "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
       },
       "title": "A String", # The gadget's title.
       "height": 42, # The gadget's height in pixels. Optional.
@@ -1304,8 +1329,10 @@
     "iCalUID": "A String", # Event ID in the iCalendar format.
     "extendedProperties": { # Extended properties of the event.
       "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
       },
       "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
       },
     },
     "endTimeUnspecified": True or False,
@@ -1405,6 +1432,7 @@
       "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
       "gadget": { # A gadget that extends this event.
         "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
         },
         "title": "A String", # The gadget's title.
         "height": 42, # The gadget's height in pixels. Optional.
@@ -1425,8 +1453,10 @@
       "iCalUID": "A String", # Event ID in the iCalendar format.
       "extendedProperties": { # Extended properties of the event.
         "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
         },
         "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
         },
       },
       "endTimeUnspecified": True or False,
@@ -1533,6 +1563,7 @@
       "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
       "gadget": { # A gadget that extends this event.
         "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
         },
         "title": "A String", # The gadget's title.
         "height": 42, # The gadget's height in pixels. Optional.
@@ -1553,8 +1584,10 @@
       "iCalUID": "A String", # Event ID in the iCalendar format.
       "extendedProperties": { # Extended properties of the event.
         "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
         },
         "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
         },
       },
       "endTimeUnspecified": True or False,
@@ -1659,6 +1692,7 @@
     "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
     "gadget": { # A gadget that extends this event.
       "preferences": { # Preferences.
+        "a_key": "A String", # The preference name and corresponding value.
       },
       "title": "A String", # The gadget's title.
       "height": 42, # The gadget's height in pixels. Optional.
@@ -1679,8 +1713,10 @@
     "iCalUID": "A String", # Event ID in the iCalendar format.
     "extendedProperties": { # Extended properties of the event.
       "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+        "a_key": "A String", # The name of the shared property and the corresponding value.
       },
       "private": { # Properties that are private to the copy of the event that appears on this calendar.
+        "a_key": "A String", # The name of the private property and the corresponding value.
       },
     },
     "endTimeUnspecified": True or False,
@@ -1780,6 +1816,7 @@
       "recurringEventId": "A String", # For an instance of a recurring event, this is the event ID of the recurring event itself. Immutable.
       "gadget": { # A gadget that extends this event.
         "preferences": { # Preferences.
+          "a_key": "A String", # The preference name and corresponding value.
         },
         "title": "A String", # The gadget's title.
         "height": 42, # The gadget's height in pixels. Optional.
@@ -1800,8 +1837,10 @@
       "iCalUID": "A String", # Event ID in the iCalendar format.
       "extendedProperties": { # Extended properties of the event.
         "shared": { # Properties that are shared between copies of the event on other attendees' calendars.
+          "a_key": "A String", # The name of the shared property and the corresponding value.
         },
         "private": { # Properties that are private to the copy of the event that appears on this calendar.
+          "a_key": "A String", # The name of the private property and the corresponding value.
         },
       },
       "endTimeUnspecified": True or False,
diff --git a/docs/dyn/calendar_v3.freebusy.html b/docs/dyn/calendar_v3.freebusy.html
index 3622744..fcedb03 100644
--- a/docs/dyn/calendar_v3.freebusy.html
+++ b/docs/dyn/calendar_v3.freebusy.html
@@ -107,9 +107,42 @@
     "timeMax": "A String", # The end of the interval.
     "kind": "calendar#freeBusy", # Type of the resource ("calendar#freeBusy").
     "calendars": { # List of free/busy information for calendars.
+      "a_key": { # Free/busy expansions for a single calendar.
+        "busy": [ # List of time ranges during which this calendar should be regarded as busy.
+          {
+            "start": "A String", # The (inclusive) start of the time period.
+            "end": "A String", # The (exclusive) end of the time period.
+          },
+        ],
+        "errors": [ # Optional error(s) (if computation for the calendar failed).
+          {
+            "domain": "A String", # Domain, or broad category, of the error.
+            "reason": "A String", # Specific reason for the error. Some of the possible values are:
+                # - "groupTooBig" - The group of users requested is too large for a single query.
+                # - "tooManyCalendarsRequested" - The number of calendars requested is too large for a single query.
+                # - "notFound" - The requested resource was not found.
+                # - "internalError" - The API service has encountered an internal error.  Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list.
+          },
+        ],
+      },
     },
     "timeMin": "A String", # The start of the interval.
     "groups": { # Expansion of groups.
+      "a_key": { # List of calendars that are members of this group.
+        "errors": [ # Optional error(s) (if computation for the group failed).
+          {
+            "domain": "A String", # Domain, or broad category, of the error.
+            "reason": "A String", # Specific reason for the error. Some of the possible values are:
+                # - "groupTooBig" - The group of users requested is too large for a single query.
+                # - "tooManyCalendarsRequested" - The number of calendars requested is too large for a single query.
+                # - "notFound" - The requested resource was not found.
+                # - "internalError" - The API service has encountered an internal error.  Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list.
+          },
+        ],
+        "calendars": [ # List of calendars' identifiers within a group.
+          "A String",
+        ],
+      },
     },
   }</pre>
 </div>
diff --git a/docs/dyn/customsearch_v1.cse.html b/docs/dyn/customsearch_v1.cse.html
index 21f149b..20fd034 100644
--- a/docs/dyn/customsearch_v1.cse.html
+++ b/docs/dyn/customsearch_v1.cse.html
@@ -239,6 +239,11 @@
         "formattedUrl": "A String",
         "htmlFormattedUrl": "A String",
         "pagemap": {
+          "a_key": [
+            {
+              "a_key": "",
+            },
+          ],
         },
         "htmlTitle": "A String",
         "htmlSnippet": "A String",
@@ -268,6 +273,47 @@
       "title": "A String",
     },
     "queries": {
+      "a_key": [
+        {
+          "sort": "A String",
+          "hl": "A String",
+          "orTerms": "A String",
+          "highRange": "A String",
+          "cx": "A String",
+          "startPage": 42,
+          "disableCnTwTranslation": "A String",
+          "cr": "A String",
+          "imgType": "A String",
+          "gl": "A String",
+          "relatedSite": "A String",
+          "searchType": "A String",
+          "title": "A String",
+          "googleHost": "A String",
+          "fileType": "A String",
+          "imgDominantColor": "A String",
+          "siteSearch": "A String",
+          "cref": "A String",
+          "dateRestrict": "A String",
+          "safe": "A String",
+          "outputEncoding": "A String",
+          "hq": "A String",
+          "searchTerms": "A String",
+          "exactTerms": "A String",
+          "language": "A String",
+          "inputEncoding": "A String",
+          "totalResults": "A String",
+          "lowRange": "A String",
+          "count": 42,
+          "imgSize": "A String",
+          "imgColorType": "A String",
+          "rights": "A String",
+          "startIndex": 42,
+          "excludeTerms": "A String",
+          "filter": "A String",
+          "linkSite": "A String",
+          "siteSearchFilter": "A String",
+        },
+      ],
     },
     "spelling": {
       "correctedQuery": "A String",
diff --git a/docs/dyn/discovery_v1.apis.html b/docs/dyn/discovery_v1.apis.html
index dd96317..4d3be47 100644
--- a/docs/dyn/discovery_v1.apis.html
+++ b/docs/dyn/discovery_v1.apis.html
@@ -95,6 +95,75 @@
     {
     "protocol": "rest", # The protocol described by this document.
     "methods": { # API-level methods for this API.
+      "a_key": { # An individual method description.
+        "scopes": [ # OAuth 2.0 scopes applicable to this method.
+          "",
+        ],
+        "description": "A String", # Description of this method.
+        "parameters": { # Details for all parameters in this method.
+          "a_key": { # Details for a single parameter in this method.
+            "properties": { # If this is a schema for an object, list the schema for each property of this object.
+              "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+            },
+            "required": True or False, # Whether the parameter is required.
+            "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+            "description": "A String", # A description of this object.
+            "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+            "default": "A String", # The default value of this property (if one exists).
+            "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+            "enum": [ # Values this parameter may take (if it is an enum).
+              "A String",
+            ],
+            "maximum": "A String", # The maximum value of this parameter.
+            "id": "A String", # Unique identifier for this schema.
+            "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+              "A String",
+            ],
+            "minimum": "A String", # The minimum value of this parameter.
+            "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+            "pattern": "A String", # The regular expression this parameter must conform to.
+            "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+            "repeated": True or False, # Whether this parameter may appear multiple times.
+            "annotations": { # Additional information about this property.
+              "required": [ # A list of methods for which this property is required on requests.
+                "A String",
+              ],
+            },
+            "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+          },
+        },
+        "supportsMediaUpload": True or False, # Whether this method supports media uploads.
+        "request": { # The schema for the request.
+          "$ref": "A String", # Schema ID for the request schema.
+        },
+        "mediaUpload": { # Media upload parameters.
+          "maxSize": "A String", # Maximum size of a media upload, such as "1MB", "2GB" or "3TB".
+          "protocols": { # Supported upload protocols.
+            "simple": { # Supports uploading as a single HTTP request.
+              "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+              "multipart": true, # True if this endpoint supports upload multipart media.
+            },
+            "resumable": { # Supports the Resumable Media Upload protocol.
+              "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+              "multipart": true, # True if this endpoint supports uploading multipart media.
+            },
+          },
+          "accept": [ # MIME Media Ranges for acceptable media uploads to this method.
+            "A String",
+          ],
+        },
+        "response": { # The schema for the response.
+          "$ref": "A String", # Schema ID for the response schema.
+        },
+        "httpMethod": "A String", # HTTP method used by this method.
+        "supportsSubscription": True or False, # Whether this method supports subscriptions.
+        "parameterOrder": [ # Ordered list of required parameters, serves as a hint to clients on how to structure their method signatures. The array is ordered such that the "most-significant" parameter appears first.
+          "A String",
+        ],
+        "path": "A String", # The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.
+        "id": "A String", # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
+        "supportsMediaDownload": True or False, # Whether this method supports media downloads.
+      },
     },
     "labels": [ # Labels for the status of this API, such as labs or deprecated.
       "A String",
@@ -102,9 +171,69 @@
     "batchPath": "batch", # The path for REST batch requests.
     "id": "A String", # The id of this API.
     "schemas": { # The schemas for this API.
+      "a_key": { # An individual schema description.
+        "properties": { # If this is a schema for an object, list the schema for each property of this object.
+          "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+        },
+        "required": True or False, # Whether the parameter is required.
+        "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+        "description": "A String", # A description of this object.
+        "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+        "default": "A String", # The default value of this property (if one exists).
+        "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+        "enum": [ # Values this parameter may take (if it is an enum).
+          "A String",
+        ],
+        "maximum": "A String", # The maximum value of this parameter.
+        "id": "A String", # Unique identifier for this schema.
+        "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+          "A String",
+        ],
+        "minimum": "A String", # The minimum value of this parameter.
+        "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+        "pattern": "A String", # The regular expression this parameter must conform to.
+        "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+        "repeated": True or False, # Whether this parameter may appear multiple times.
+        "annotations": { # Additional information about this property.
+          "required": [ # A list of methods for which this property is required on requests.
+            "A String",
+          ],
+        },
+        "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+      },
     },
     "rootUrl": "A String", # The root url under which all API services live.
     "parameters": { # Common parameters that apply across all apis.
+      "a_key": { # Description of a single parameter.
+        "properties": { # If this is a schema for an object, list the schema for each property of this object.
+          "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+        },
+        "required": True or False, # Whether the parameter is required.
+        "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+        "description": "A String", # A description of this object.
+        "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+        "default": "A String", # The default value of this property (if one exists).
+        "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+        "enum": [ # Values this parameter may take (if it is an enum).
+          "A String",
+        ],
+        "maximum": "A String", # The maximum value of this parameter.
+        "id": "A String", # Unique identifier for this schema.
+        "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+          "A String",
+        ],
+        "minimum": "A String", # The minimum value of this parameter.
+        "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+        "pattern": "A String", # The regular expression this parameter must conform to.
+        "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+        "repeated": True or False, # Whether this parameter may appear multiple times.
+        "annotations": { # Additional information about this property.
+          "required": [ # A list of methods for which this property is required on requests.
+            "A String",
+          ],
+        },
+        "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+      },
     },
     "icons": { # Links to 16x16 and 32x32 icons representing the API.
       "x32": "A String", # The url of the 32x32 icon.
@@ -117,12 +246,91 @@
     ],
     "servicePath": "A String", # The base path for all REST requests.
     "resources": { # The resources in this API.
+      "a_key": { # An individual resource description. Contains methods and sub-resources related to this resource.
+        "methods": { # Methods on this resource.
+          "a_key": { # Description for any methods on this resource.
+            "scopes": [ # OAuth 2.0 scopes applicable to this method.
+              "",
+            ],
+            "description": "A String", # Description of this method.
+            "parameters": { # Details for all parameters in this method.
+              "a_key": { # Details for a single parameter in this method.
+                "properties": { # If this is a schema for an object, list the schema for each property of this object.
+                  "a_key": # Object with schema name: JsonSchema # A single property of this object. The value is itself a JSON Schema object describing this property.
+                },
+                "required": True or False, # Whether the parameter is required.
+                "type": "A String", # The value type for this schema. A list of values can be found here: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
+                "description": "A String", # A description of this object.
+                "format": "A String", # An additional regular expression or key that helps constrain the value. For more details see: http://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.23
+                "default": "A String", # The default value of this property (if one exists).
+                "items": # Object with schema name: JsonSchema # If this is a schema for an array, this property is the schema for each element in the array.
+                "enum": [ # Values this parameter may take (if it is an enum).
+                  "A String",
+                ],
+                "maximum": "A String", # The maximum value of this parameter.
+                "id": "A String", # Unique identifier for this schema.
+                "enumDescriptions": [ # The descriptions for the enums. Each position maps to the corresponding value in the "enum" array.
+                  "A String",
+                ],
+                "minimum": "A String", # The minimum value of this parameter.
+                "location": "A String", # Whether this parameter goes in the query or the path for REST requests.
+                "pattern": "A String", # The regular expression this parameter must conform to.
+                "additionalProperties": # Object with schema name: JsonSchema # If this is a schema for an object, this property is the schema for any additional properties with dynamic keys on this object.
+                "repeated": True or False, # Whether this parameter may appear multiple times.
+                "annotations": { # Additional information about this property.
+                  "required": [ # A list of methods for which this property is required on requests.
+                    "A String",
+                  ],
+                },
+                "$ref": "A String", # A reference to another schema. The value of this property is the "id" of another schema.
+              },
+            },
+            "supportsMediaUpload": True or False, # Whether this method supports media uploads.
+            "request": { # The schema for the request.
+              "$ref": "A String", # Schema ID for the request schema.
+            },
+            "mediaUpload": { # Media upload parameters.
+              "maxSize": "A String", # Maximum size of a media upload, such as "1MB", "2GB" or "3TB".
+              "protocols": { # Supported upload protocols.
+                "simple": { # Supports uploading as a single HTTP request.
+                  "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+                  "multipart": true, # True if this endpoint supports upload multipart media.
+                },
+                "resumable": { # Supports the Resumable Media Upload protocol.
+                  "path": "A String", # The URI path to be used for upload. Should be used in conjunction with the basePath property at the api-level.
+                  "multipart": true, # True if this endpoint supports uploading multipart media.
+                },
+              },
+              "accept": [ # MIME Media Ranges for acceptable media uploads to this method.
+                "A String",
+              ],
+            },
+            "response": { # The schema for the response.
+              "$ref": "A String", # Schema ID for the response schema.
+            },
+            "httpMethod": "A String", # HTTP method used by this method.
+            "supportsSubscription": True or False, # Whether this method supports subscriptions.
+            "parameterOrder": [ # Ordered list of required parameters, serves as a hint to clients on how to structure their method signatures. The array is ordered such that the "most-significant" parameter appears first.
+              "A String",
+            ],
+            "path": "A String", # The URI path of this REST method. Should be used in conjunction with the basePath property at the api-level.
+            "id": "A String", # A unique ID for this method. This property can be used to match methods between different versions of Discovery.
+            "supportsMediaDownload": True or False, # Whether this method supports media downloads.
+          },
+        },
+        "resources": { # Sub-resources on this resource.
+          "a_key": # Object with schema name: RestResource # Description for any sub-resources on this resource.
+        },
+      },
     },
     "revision": "A String", # The version of this API.
     "description": "A String", # The description of this API.
     "auth": { # Authentication information.
       "oauth2": { # OAuth 2.0 authentication information.
         "scopes": { # Available OAuth 2.0 scopes.
+          "a_key": { # The scope value.
+            "description": "A String", # Description of scope.
+          },
         },
       },
     },
diff --git a/docs/dyn/drive_v2.changes.html b/docs/dyn/drive_v2.changes.html
index 2aed843..c470345 100644
--- a/docs/dyn/drive_v2.changes.html
+++ b/docs/dyn/drive_v2.changes.html
@@ -131,6 +131,7 @@
         },
       ],
       "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
       },
       "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
       "description": "A String", # A short description of the file.
@@ -233,6 +234,7 @@
             },
           ],
           "exportLinks": { # Links for exporting Google Docs to specific formats.
+            "a_key": "A String", # A mapping from export format to URL
           },
           "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
           "description": "A String", # A short description of the file.
diff --git a/docs/dyn/drive_v2.files.html b/docs/dyn/drive_v2.files.html
index 16d0016..da611fd 100644
--- a/docs/dyn/drive_v2.files.html
+++ b/docs/dyn/drive_v2.files.html
@@ -151,6 +151,7 @@
     },
   ],
   "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
   },
   "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
   "description": "A String", # A short description of the file.
@@ -239,6 +240,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
@@ -340,6 +342,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
@@ -425,6 +428,7 @@
     },
   ],
   "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
   },
   "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
   "description": "A String", # A short description of the file.
@@ -514,6 +518,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
@@ -611,6 +616,7 @@
           },
         ],
         "exportLinks": { # Links for exporting Google Docs to specific formats.
+          "a_key": "A String", # A mapping from export format to URL
         },
         "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
         "description": "A String", # A short description of the file.
@@ -716,6 +722,7 @@
     },
   ],
   "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
   },
   "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
   "description": "A String", # A short description of the file.
@@ -807,6 +814,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
@@ -894,6 +902,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
@@ -981,6 +990,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
@@ -1068,6 +1078,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
@@ -1154,6 +1165,7 @@
     },
   ],
   "exportLinks": { # Links for exporting Google Docs to specific formats.
+    "a_key": "A String", # A mapping from export format to URL
   },
   "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
   "description": "A String", # A short description of the file.
@@ -1246,6 +1258,7 @@
       },
     ],
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "originalFilename": "A String", # The filename when uploading this file. This will only be populated on files with content stored in Drive.
     "description": "A String", # A short description of the file.
diff --git a/docs/dyn/drive_v2.revisions.html b/docs/dyn/drive_v2.revisions.html
index 7b810bb..686988e 100644
--- a/docs/dyn/drive_v2.revisions.html
+++ b/docs/dyn/drive_v2.revisions.html
@@ -124,6 +124,7 @@
       "etag": "A String", # The ETag of the revision.
       "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
       "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
       },
       "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
       "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
@@ -158,6 +159,7 @@
           "etag": "A String", # The ETag of the revision.
           "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
           "exportLinks": { # Links for exporting Google Docs to specific formats.
+            "a_key": "A String", # A mapping from export format to URL
           },
           "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
           "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
@@ -195,6 +197,7 @@
     "etag": "A String", # The ETag of the revision.
     "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
     "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
@@ -220,6 +223,7 @@
       "etag": "A String", # The ETag of the revision.
       "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
       "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
       },
       "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
       "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
@@ -252,6 +256,7 @@
     "etag": "A String", # The ETag of the revision.
     "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
     "exportLinks": { # Links for exporting Google Docs to specific formats.
+      "a_key": "A String", # A mapping from export format to URL
     },
     "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
     "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
@@ -277,6 +282,7 @@
       "etag": "A String", # The ETag of the revision.
       "fileSize": "A String", # The size of the revision in bytes. This will only be populated on files with content stored in Drive.
       "exportLinks": { # Links for exporting Google Docs to specific formats.
+        "a_key": "A String", # A mapping from export format to URL
       },
       "lastModifyingUserName": "A String", # Name of the last user to modify this revision.
       "originalFilename": "A String", # The original filename when this revision was created. This will only be populated on files with content stored in Drive.
diff --git a/docs/dyn/pagespeedonline_v1.pagespeedapi.html b/docs/dyn/pagespeedonline_v1.pagespeedapi.html
index a19c419..a8c12da 100644
--- a/docs/dyn/pagespeedonline_v1.pagespeedapi.html
+++ b/docs/dyn/pagespeedonline_v1.pagespeedapi.html
@@ -99,6 +99,48 @@
     "formattedResults": { # Localized Page Speed results. Contains a ruleResults entry for each Page Speed rule instantiated and run by the server.
       "locale": "A String", # The locale of the formattedResults, e.g. "en_US".
       "ruleResults": { # Dictionary of formatted rule results, with one entry for each Page Speed rule instantiated and run by the server.
+        "a_key": { # The enum-like identifier for this rule. For instance "EnableKeepAlive" or "AvoidCssImport". Not localized.
+          "localizedRuleName": "A String", # Localized name of the rule, intended for presentation to a user.
+          "urlBlocks": [ # List of blocks of URLs. Each block may contain a heading and a list of URLs. Each URL may optionally include additional details.
+            {
+              "header": { # Heading to be displayed with the list of URLs.
+                "args": [ # List of arguments for the format string.
+                  {
+                    "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION.
+                    "value": "A String", # Argument value, as a localized string.
+                  },
+                ],
+                "format": "A String", # A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Minifying the following $1 resources would save a total of $2 bytes'.
+              },
+              "urls": [ # List of entries that provide information about URLs in the url block. Optional.
+                {
+                  "details": [ # List of entries that provide additional details about a single URL. Optional.
+                    {
+                      "args": [ # List of arguments for the format string.
+                        {
+                          "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION.
+                          "value": "A String", # Argument value, as a localized string.
+                        },
+                      ],
+                      "format": "A String", # A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Unnecessary metadata for this resource adds an additional $1 bytes to its download size'.
+                    },
+                  ],
+                  "result": { # A format string that gives information about the URL, and a list of arguments for that format string.
+                    "args": [ # List of arguments for the format string.
+                      {
+                        "type": "A String", # Type of argument. One of URL, STRING_LITERAL, INT_LITERAL, BYTES, or DURATION.
+                        "value": "A String", # Argument value, as a localized string.
+                      },
+                    ],
+                    "format": "A String", # A localized format string with $N placeholders, where N is the 1-indexed argument number, e.g. 'Minifying the resource at URL $1 can save $2 bytes'.
+                  },
+                },
+              ],
+            },
+          ],
+          "ruleScore": 42, # The score (0-100) for this rule. The rule score indicates how well a page implements the recommendations for the given rule. For instance, if none of the compressible resources on a page are compressed, the rule score would be 0, while if all of the compressible resources on a page are compressed, the rule score would be 100.
+          "ruleImpact": 3.14, # The impact (unbounded floating point value) that implementing the suggestions for this rule would have on making the page faster. Impact is comparable between rules to determine which rule's suggestions would have a higher or lower impact on making a page faster. For instance, if enabling compression would save 1MB, while optimizing images would save 500kB, the enable compression rule would have 2x the impact of the image optimization rule, all other things being equal.
+        },
       },
     },
     "title": "A String", # Title of the page, as displayed in the browser's title bar.
diff --git a/docs/dyn/prediction_v1_5.trainedmodels.html b/docs/dyn/prediction_v1_5.trainedmodels.html
index d4f6c06..f836cb3 100644
--- a/docs/dyn/prediction_v1_5.trainedmodels.html
+++ b/docs/dyn/prediction_v1_5.trainedmodels.html
@@ -113,6 +113,7 @@
     "kind": "prediction#analyze", # What kind of resource this is.
     "errors": [ # List of errors with the data.
       {
+        "a_key": "A String", # Error level followed by a detailed error message.
       },
     ],
     "dataDescription": { # Description of the data the model was trained on.
@@ -154,8 +155,12 @@
     },
     "modelDescription": { # Description of the model.
       "confusionMatrixRowTotals": { # A list of the confusion matrix row totals
+        "a_key": 3.14,
       },
       "confusionMatrix": { # An output confusion matrix. This shows an estimate for how this model will do in predictions. This is first indexed by the true class label. For each true class label, this provides a pair {predicted_label, count}, where count is the estimated number of times the model will predict the predicted label given the true label. Will not output if more then 100 classes [Categorical models only].
+        "a_key": {
+          "a_key": 3.14,
+        },
       },
       "modelinfo": { # Basic information about the model.
           "kind": "prediction#training", # What kind of resource this is.
@@ -177,6 +182,7 @@
           "selfLink": "A String", # A URL to re-request this resource.
           "utility": [ # A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].
             { # Class label (string).
+              "a_key": 3.14,
             },
           ],
         },
@@ -225,6 +231,7 @@
       "selfLink": "A String", # A URL to re-request this resource.
       "utility": [ # A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].
         { # Class label (string).
+          "a_key": 3.14,
         },
       ],
     }</pre>
@@ -258,6 +265,7 @@
     "selfLink": "A String", # A URL to re-request this resource.
     "utility": [ # A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].
       { # Class label (string).
+        "a_key": 3.14,
       },
     ],
   }
@@ -286,6 +294,7 @@
       "selfLink": "A String", # A URL to re-request this resource.
       "utility": [ # A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].
         { # Class label (string).
+          "a_key": 3.14,
         },
       ],
     }</pre>
@@ -325,6 +334,7 @@
           "selfLink": "A String", # A URL to re-request this resource.
           "utility": [ # A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].
             { # Class label (string).
+              "a_key": 3.14,
             },
           ],
         },
@@ -424,6 +434,7 @@
       "selfLink": "A String", # A URL to re-request this resource.
       "utility": [ # A class weighting function, which allows the importance weights for class labels to be specified [Categorical models only].
         { # Class label (string).
+          "a_key": 3.14,
         },
       ],
     }</pre>
diff --git a/docs/dyn/storage_v1beta1.objects.html b/docs/dyn/storage_v1beta1.objects.html
index 9ac216d..bb38703 100644
--- a/docs/dyn/storage_v1beta1.objects.html
+++ b/docs/dyn/storage_v1beta1.objects.html
@@ -167,6 +167,7 @@
       "id": "A String", # The ID of the object.
       "contentDisposition": "A String", # Content-Disposition of the object data.
       "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
       },
     }</pre>
 </div>
@@ -241,6 +242,7 @@
     "id": "A String", # The ID of the object.
     "contentDisposition": "A String", # Content-Disposition of the object data.
     "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
     },
   }
 
@@ -297,6 +299,7 @@
       "id": "A String", # The ID of the object.
       "contentDisposition": "A String", # Content-Disposition of the object data.
       "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
       },
     }</pre>
 </div>
@@ -365,6 +368,7 @@
           "id": "A String", # The ID of the object.
           "contentDisposition": "A String", # Content-Disposition of the object data.
           "metadata": { # User-provided metadata, in key/value pairs.
+            "a_key": "A String", # An individual metadata entry.
           },
         },
     ],
@@ -442,6 +446,7 @@
     "id": "A String", # The ID of the object.
     "contentDisposition": "A String", # Content-Disposition of the object data.
     "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
     },
   }
 
@@ -496,6 +501,7 @@
       "id": "A String", # The ID of the object.
       "contentDisposition": "A String", # Content-Disposition of the object data.
       "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
       },
     }</pre>
 </div>
@@ -553,6 +559,7 @@
     "id": "A String", # The ID of the object.
     "contentDisposition": "A String", # Content-Disposition of the object data.
     "metadata": { # User-provided metadata, in key/value pairs.
+      "a_key": "A String", # An individual metadata entry.
     },
   }
 
@@ -607,6 +614,7 @@
       "id": "A String", # The ID of the object.
       "contentDisposition": "A String", # Content-Disposition of the object data.
       "metadata": { # User-provided metadata, in key/value pairs.
+        "a_key": "A String", # An individual metadata entry.
       },
     }</pre>
 </div>
diff --git a/docs/dyn/youtube_v3alpha.channels.html b/docs/dyn/youtube_v3alpha.channels.html
index c8fcbf1..05a4fa6 100644
--- a/docs/dyn/youtube_v3alpha.channels.html
+++ b/docs/dyn/youtube_v3alpha.channels.html
@@ -92,6 +92,30 @@
 
     { # JSON template for a ChannelService.List() response.
     "channels": { # Map of channels matching the request criteria, keyed by channel id.
+      "a_key": { # JSON template for a YouTube Channel.
+        "kind": "youtube#channel", # The type of this API resource.
+        "statistics": { # JSON template for the statistics part of a channel. # Statistics about the channel: number of subscribers, views, and comments.
+          "commentCount": "A String", # Number of comments for this channel.
+          "subscriberCount": "A String", # Number of subscribers to this channel.
+          "videoCount": "A String", # Number of videos in the channel.
+          "viewCount": "A String", # Number of times the channel has been viewed.
+        },
+        "contentDetails": { # JSON template for the content details part of a channel. # Information about the channel content: upload playlist id, privacy status.
+          "privacyStatus": "A String", # Privacy status of the channel.
+          "uploads": "A String", # The ID of the playlist containing the uploads of this channel.
+        },
+        "snippet": { # JSON template for the snippet part of a channel. # Basic details about the channel: title, description, and thumbnails.
+          "title": "A String", # Title of the channel.
+          "description": "A String", # Description of the channel.
+          "thumbnails": { # Channel thumbnails.
+            "a_key": { # JSON template for a thumbnail. # The name of the thumbnail.
+              "url": "A String", # The URL for the thumbnail.
+            },
+          },
+        },
+        "etag": "A String", # The eTag of the channel.
+        "id": "A String", # The unique ID of the channel.
+      },
     },
     "kind": "youtube#channelListResponse", # The type of this API response.
     "etag": "A String", # The eTag of the response.
diff --git a/docs/dyn/youtube_v3alpha.playlistitems.html b/docs/dyn/youtube_v3alpha.playlistitems.html
index 28e3586..72d1fea 100644
--- a/docs/dyn/youtube_v3alpha.playlistitems.html
+++ b/docs/dyn/youtube_v3alpha.playlistitems.html
@@ -94,6 +94,25 @@
 
     { # JSON template for a PlaylistItemService.List() response.
     "playlistItems": { # Map of playlist items matching the request criteria, keyed by id.
+      "a_key": { # JSON template for a YouTube Playlist item.
+        "snippet": { # JSON template for the snippet part of a playlist item. # Basic details about the playlist item: title, description, thumbnails.
+          "playlistId": "A String", # The playlist the item is part of.
+          "description": "A String", # Description of the playlist item.
+          "title": "A String", # Title of the playlist item.
+          "resourceId": { # JSON template for a resource id. # The ID of the resource referenced by the playlist item.
+            "kind": "A String", # The kind of the referred resource.
+            "channelId": "A String", # ID of the referred channel. Present only when type is "CHANNEL".
+            "playlistId": "A String", # ID of the referred playlist. Present only when type is "PLAYLIST".
+            "videoId": "A String", # ID of the referred video. Present only when type is "VIDEO".
+          },
+          "channelId": "A String", # Author of the playlist item.
+          "publishedAt": "A String", # The date and time the playlist item was created.
+          "position": 42, # The position of the item within the playlist.
+        },
+        "kind": "youtube#playlistItem", # The type of this API resource.
+        "etag": "A String", # The eTag of the playlist item.
+        "id": "A String", # The unique id of the playlist item.
+      },
     },
     "kind": "youtube#playlistItemListResponse", # The type of this API response.
     "etag": "A String", # The eTag of the response.
diff --git a/docs/dyn/youtube_v3alpha.playlists.html b/docs/dyn/youtube_v3alpha.playlists.html
index 05b1a74..199c660 100644
--- a/docs/dyn/youtube_v3alpha.playlists.html
+++ b/docs/dyn/youtube_v3alpha.playlists.html
@@ -93,6 +93,20 @@
     "kind": "youtube#playlistListResponse", # The type of this API response.
     "etag": "A String", # The eTag of the response.
     "playlists": { # Map of playlists matching the request criteria, keyed by id.
+      "a_key": { # JSON template for a YouTube Playlist.
+        "snippet": { # JSON template for the snippet part of a playlist. # Basic details about the playlist: title, description, thumbnails.
+          "title": "A String", # Title of the playlist.
+          "channelId": "A String", # Author of the playlist.
+          "description": "A String", # Description of the playlist.
+          "publishedAt": "A String", # The date and time the playlist was created.
+          "tags": [ # Textual tags associated with the playlist.
+            "A String",
+          ],
+        },
+        "kind": "youtube#playlist", # The type of this API resource.
+        "etag": "A String", # The eTag of the playlist.
+        "id": "A String", # The unique id of the playlist.
+      },
     },
   }</pre>
 </div>
diff --git a/docs/dyn/youtube_v3alpha.videos.html b/docs/dyn/youtube_v3alpha.videos.html
index f83a366..67f05bf 100644
--- a/docs/dyn/youtube_v3alpha.videos.html
+++ b/docs/dyn/youtube_v3alpha.videos.html
@@ -93,6 +93,46 @@
     "kind": "youtube#videoListResponse", # The type of this API response.
     "etag": "A String", # The eTag of the response.
     "videos": { # Map of videos matching the request criteria, keyed by video id.
+      "a_key": { # JSON template for a YouTube Video.
+        "status": { # JSON template for the status part of a video. # Status of the video upload, privacy status.
+          "privacyStatus": "A String", # Privacy of the video.
+          "uploadStatus": "A String", # Status of the video upload.
+          "rejectionReason": "A String", # Present only if the uploadStatus indicates a rejected upload.
+          "failureReason": "A String", # Present only if the uploadStatus indicates a failed upload.
+        },
+        "kind": "youtube#video", # The type of this API resource.
+        "statistics": { # JSON template for the statistics part of a video. # Statistics about the video: number of views, ratings.
+          "commentCount": "A String", # Number of comments for this video.
+          "viewCount": "A String", # Number of times the video was viewed.
+          "favoriteCount": "A String", # Number of times the video was added to a user's favorites list.
+          "dislikeCount": "A String", # Number of times the video was disliked.
+          "likeCount": "A String", # Number of times the video was liked.
+        },
+        "contentDetails": { # JSON template for the content details part of a video. # Information about the video content, media file.
+          "duration": "A String", # Duration of the video.
+          "aspectRatio": "A String", # The aspect ratio of the video.
+        },
+        "snippet": { # JSON template for the snippet part of a video. # Basic details about the video: title, description, thumbnails.
+          "thumbnails": { # Video thumbnails.
+            "a_key": { # JSON template for a thumbnail. # The name of the thumbnail.
+              "url": "A String", # The URL for the thumbnail.
+            },
+          },
+          "tags": [ # Textual tags associated with the video.
+            "A String",
+          ],
+          "channelId": "A String", # Channel the video was uploaded into.
+          "publishedAt": "A String", # Date time the video was uploaded.
+          "title": "A String", # Title of the video.
+          "categoryId": "A String", # Video category the video belongs to.
+          "description": "A String", # Description of the video.
+        },
+        "player": { # JSON template for the player part of a video. # Information used to play the video.
+          "embedHtml": "A String", # Iframe embed for the video.
+        },
+        "etag": "A String", # The eTag of the video.
+        "id": "A String", # The unique id of the video.
+      },
     },
   }</pre>
 </div>
diff --git a/docs/epy/api-objects.txt b/docs/epy/api-objects.txt
index aae07e8..79c163a 100644
--- a/docs/epy/api-objects.txt
+++ b/docs/epy/api-objects.txt
@@ -87,6 +87,7 @@
 oauth2client.clientsecrets.TYPE_WEB	oauth2client.clientsecrets-module.html#TYPE_WEB
 oauth2client.clientsecrets.VALID_CLIENT	oauth2client.clientsecrets-module.html#VALID_CLIENT
 oauth2client.clientsecrets.loadfile	oauth2client.clientsecrets-module.html#loadfile
+oauth2client.clientsecrets._loadfile	oauth2client.clientsecrets-module.html#_loadfile
 oauth2client.clientsecrets.loads	oauth2client.clientsecrets-module.html#loads
 oauth2client.clientsecrets.__package__	oauth2client.clientsecrets-module.html#__package__
 oauth2client.crypt	oauth2client.crypt-module.html
diff --git a/docs/epy/apiclient-module.html b/docs/epy/apiclient-module.html
index 0da1393..638a7b1 100644
--- a/docs/epy/apiclient-module.html
+++ b/docs/epy/apiclient-module.html
@@ -140,7 +140,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient-pysrc.html b/docs/epy/apiclient-pysrc.html
index 09a060f..1bc129d 100644
--- a/docs/epy/apiclient-pysrc.html
+++ b/docs/epy/apiclient-pysrc.html
@@ -83,7 +83,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.contrib-module.html b/docs/epy/apiclient.contrib-module.html
index 340b97d..d911768 100644
--- a/docs/epy/apiclient.contrib-module.html
+++ b/docs/epy/apiclient.contrib-module.html
@@ -126,7 +126,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.contrib.latitude-module.html b/docs/epy/apiclient.contrib.latitude-module.html
index 35b6f28..a5ca757 100644
--- a/docs/epy/apiclient.contrib.latitude-module.html
+++ b/docs/epy/apiclient.contrib.latitude-module.html
@@ -102,7 +102,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.contrib.moderator-module.html b/docs/epy/apiclient.contrib.moderator-module.html
index c640aad..9d42c3a 100644
--- a/docs/epy/apiclient.contrib.moderator-module.html
+++ b/docs/epy/apiclient.contrib.moderator-module.html
@@ -102,7 +102,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.discovery-module.html b/docs/epy/apiclient.discovery-module.html
index 067bd0f..516259c 100644
--- a/docs/epy/apiclient.discovery-module.html
+++ b/docs/epy/apiclient.discovery-module.html
@@ -164,7 +164,7 @@
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td><span class="summary-sig"><a href="apiclient.discovery-module.html#build_from_document" class="summary-sig-name" onclick="show_private();">build_from_document</a>(<span class="summary-sig-arg">service</span>,
-        <span class="summary-sig-arg">base</span>,
+        <span class="summary-sig-arg">base</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">future</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">developerKey</span>=<span class="summary-sig-default">None</span>,
@@ -496,7 +496,7 @@
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">build_from_document</span>(<span class="sig-arg">service</span>,
-        <span class="sig-arg">base</span>,
+        <span class="sig-arg">base</span>=<span class="sig-default">None</span>,
         <span class="sig-arg">future</span>=<span class="sig-default">None</span>,
         <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
         <span class="sig-arg">developerKey</span>=<span class="sig-default">None</span>,
@@ -517,6 +517,8 @@
 Args:
   service: string, discovery document.
   base: string, base URI for all HTTP requests, usually the discovery URI.
+    This parameter is no longer used as rootUrl and servicePath are included
+    within the discovery document. (deprecated)
   future: string, discovery document with future capabilities (deprecated).
   http: httplib2.Http, An instance of httplib2.Http or something that acts
     like it that HTTP requests will be made through.
@@ -748,7 +750,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.discovery-pysrc.html b/docs/epy/apiclient.discovery-pysrc.html
index a8adefc..33e4ffe 100644
--- a/docs/epy/apiclient.discovery-pysrc.html
+++ b/docs/epy/apiclient.discovery-pysrc.html
@@ -289,7 +289,7 @@
 <a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"> </tt>
 <a name="build_from_document"></a><div id="build_from_document-def"><a name="L209"></a><tt class="py-lineno">209</tt> <a class="py-toggle" href="#" id="build_from_document-toggle" onclick="return toggle('build_from_document');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#build_from_document">build_from_document</a><tt class="py-op">(</tt> </tt>
 <a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">    <tt class="py-param">service</tt><tt class="py-op">,</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-param">base</tt><tt class="py-op">,</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-param">base</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">    <tt class="py-param">future</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">    <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">    <tt class="py-param">developerKey</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
@@ -303,163 +303,163 @@
 <a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
 <a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-docstring">    service: string, discovery document.</tt> </tt>
 <a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring">    base: string, base URI for all HTTP requests, usually the discovery URI.</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">    future: string, discovery document with future capabilities (deprecated).</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-docstring">      like it that HTTP requests will be made through.</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, Key for controlling API usage, generated</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"><tt class="py-docstring">      from the API Console.</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring">    model: Model class instance that serializes and de-serializes requests and</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring">      responses.</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: Takes an http request and packages it up to be executed.</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"><tt class="py-docstring">    A Resource object with methods for interacting with the service.</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">  <tt class="py-comment"># future is no longer used.</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">  <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">  <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-69', 'loads', 'link-60');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">  <tt class="py-name">base</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">base</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'basePath'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">  <tt id="link-70" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-70', 'schema', 'link-38');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="apiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-71', 'Schemas', 'link-39');">Schemas</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt id="link-72" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-72', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">    <tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><a title="apiclient.schema.Schemas.get
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">      This parameter is no longer used as rootUrl and servicePath are included</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-docstring">      within the discovery document. (deprecated)</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-docstring">    future: string, discovery document with future capabilities (deprecated).</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, An instance of httplib2.Http or something that acts</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"><tt class="py-docstring">      like it that HTTP requests will be made through.</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, Key for controlling API usage, generated</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line"><tt class="py-docstring">      from the API Console.</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line"><tt class="py-docstring">    model: Model class instance that serializes and de-serializes requests and</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"><tt class="py-docstring">      responses.</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: Takes an http request and packages it up to be executed.</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"><tt class="py-docstring">    A Resource object with methods for interacting with the service.</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">  <tt class="py-comment"># future is no longer used.</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">  <tt class="py-name">future</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">  <tt class="py-name">service</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-69', 'loads', 'link-60');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">  <tt class="py-name">base</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'rootUrl'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">[</tt><tt class="py-string">'servicePath'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">  <tt id="link-70" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-70', 'schema', 'link-38');">schema</a></tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="apiclient.schema.Schemas" class="py-name" href="#" onclick="return doclink('link-71', 'Schemas', 'link-39');">Schemas</a></tt><tt class="py-op">(</tt><tt class="py-name">service</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt id="link-72" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-72', 'model', 'link-29');">model</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">    <tt class="py-name">features</tt> <tt class="py-op">=</tt> <tt class="py-name">service</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-73', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'features'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">    <tt id="link-74" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-74', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-75', 'JsonModel', 'link-30');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-string">'dataWrapper'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">features</tt><tt class="py-op">)</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">  <tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name" targets="Function apiclient.discovery._createResource()=apiclient.discovery-module.html#_createResource"><a title="apiclient.discovery._createResource" class="py-name" href="#" onclick="return doclink('link-76', '_createResource', 'link-76');">_createResource</a></tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="apiclient.http
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">    <tt id="link-74" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-74', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="apiclient.model.JsonModel" class="py-name" href="#" onclick="return doclink('link-75', 'JsonModel', 'link-30');">JsonModel</a></tt><tt class="py-op">(</tt><tt class="py-string">'dataWrapper'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">features</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">  <tt class="py-name">resource</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name" targets="Function apiclient.discovery._createResource()=apiclient.discovery-module.html#_createResource"><a title="apiclient.discovery._createResource" class="py-name" href="#" onclick="return doclink('link-76', '_createResource', 'link-76');">_createResource</a></tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-77', 'http', 'link-20');">http</a></tt><tt class="py-op">,</tt> <tt class="py-name">base</tt><tt class="py-op">,</tt> <tt id="link-78" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-78', 'model', 'link-29');">model</a></tt><tt class="py-op">,</tt> <tt class="py-name">requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-name">developerKey</tt><tt class="py-op">,</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">                       <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt id="link-79" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-79', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">resource</tt> </tt>
-</div><a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line"> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line"> </tt>
-<a name="_cast"></a><div id="_cast-def"><a name="L254"></a><tt class="py-lineno">254</tt> <a class="py-toggle" href="#" id="_cast-toggle" onclick="return toggle('_cast');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_cast">_cast</a><tt class="py-op">(</tt><tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">schema_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_cast-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_cast-expanded"><a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert value to a string based on JSON Schema type.</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line"><tt class="py-docstring">  See http://tools.ietf.org/html/draft-zyp-json-schema-03 for more details on</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"><tt class="py-docstring">  JSON Schema.</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring">    value: any, the value to convert</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"><tt class="py-docstring">    schema_type: string, the type that value should be interpreted as</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-docstring">    A string representation of 'value' based on the schema_type.</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line"> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"><tt id="link-80" class="py-name" targets="Variable apiclient.discovery.MULTIPLIERS=apiclient.discovery-module.html#MULTIPLIERS"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-80', 'MULTIPLIERS', 'link-80');">MULTIPLIERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">    <tt class="py-string">"KB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">    <tt class="py-string">"MB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">    <tt class="py-string">"GB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">30</tt><tt class="py-op">,</tt> </tt>
-<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">    <tt class="py-string">"TB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
-<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line"> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"> </tt>
-<a name="_media_size_to_long"></a><div id="_media_size_to_long-def"><a name="L293"></a><tt class="py-lineno">293</tt> <a class="py-toggle" href="#" id="_media_size_to_long-toggle" onclick="return toggle('_media_size_to_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_media_size_to_long">_media_size_to_long</a><tt class="py-op">(</tt><tt class="py-param">maxSize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_media_size_to_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_media_size_to_long-expanded"><a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert a string media size, such as 10GB or 3TB into an integer.</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"><tt class="py-docstring">    maxSize: string, size as a string, such as 2MB or 7GB.</tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring">    The size as an integer value.</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">  <tt class="py-name">units</tt> <tt class="py-op">=</tt> <tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">  <tt class="py-name">multiplier</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-81', 'MULTIPLIERS', 'link-80');">MULTIPLIERS</a></tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">                       <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt class="py-name">service</tt><tt class="py-op">,</tt> <tt id="link-79" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-79', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line"> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">resource</tt> </tt>
+</div><a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line"> </tt>
+<a name="_cast"></a><div id="_cast-def"><a name="L256"></a><tt class="py-lineno">256</tt> <a class="py-toggle" href="#" id="_cast-toggle" onclick="return toggle('_cast');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_cast">_cast</a><tt class="py-op">(</tt><tt class="py-param">value</tt><tt class="py-op">,</tt> <tt class="py-param">schema_type</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_cast-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_cast-expanded"><a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert value to a string based on JSON Schema type.</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line"><tt class="py-docstring">  See http://tools.ietf.org/html/draft-zyp-json-schema-03 for more details on</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line"><tt class="py-docstring">  JSON Schema.</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"><tt class="py-docstring">    value: any, the value to convert</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-docstring">    schema_type: string, the type that value should be interpreted as</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-docstring">    A string representation of 'value' based on the schema_type.</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">  <tt class="py-keyword">elif</tt> <tt class="py-name">schema_type</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-string">u''</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">value</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"><tt id="link-80" class="py-name" targets="Variable apiclient.discovery.MULTIPLIERS=apiclient.discovery-module.html#MULTIPLIERS"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-80', 'MULTIPLIERS', 'link-80');">MULTIPLIERS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">    <tt class="py-string">"KB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">    <tt class="py-string">"MB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">20</tt><tt class="py-op">,</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">    <tt class="py-string">"GB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">30</tt><tt class="py-op">,</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-string">"TB"</tt><tt class="py-op">:</tt> <tt class="py-number">2</tt> <tt class="py-op">**</tt> <tt class="py-number">40</tt><tt class="py-op">,</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"> </tt>
+<a name="_media_size_to_long"></a><div id="_media_size_to_long-def"><a name="L295"></a><tt class="py-lineno">295</tt> <a class="py-toggle" href="#" id="_media_size_to_long-toggle" onclick="return toggle('_media_size_to_long');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_media_size_to_long">_media_size_to_long</a><tt class="py-op">(</tt><tt class="py-param">maxSize</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_media_size_to_long-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_media_size_to_long-expanded"><a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">  <tt class="py-docstring">"""Convert a string media size, such as 10GB or 3TB into an integer.</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-docstring">    maxSize: string, size as a string, such as 2MB or 7GB.</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line"><tt class="py-docstring">    The size as an integer value.</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-number">0</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">  <tt class="py-name">units</tt> <tt class="py-op">=</tt> <tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">upper</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">  <tt class="py-name">multiplier</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="apiclient.discovery.MULTIPLIERS" class="py-name" href="#" onclick="return doclink('link-81', 'MULTIPLIERS', 'link-80');">MULTIPLIERS</a></tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-82', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">units</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">multiplier</tt><tt class="py-op">:</tt> </tt>
-<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">multiplier</tt> </tt>
-<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line"> </tt>
-<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line"> </tt>
-<a name="_createResource"></a><div id="_createResource-def"><a name="L312"></a><tt class="py-lineno">312</tt> <a class="py-toggle" href="#" id="_createResource-toggle" onclick="return toggle('_createResource');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_createResource">_createResource</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">baseUrl</tt><tt class="py-op">,</tt> <tt class="py-param">model</tt><tt class="py-op">,</tt> <tt class="py-param">requestBuilder</tt><tt class="py-op">,</tt> </tt>
-<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line">                   <tt class="py-param">developerKey</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_createResource-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_createResource-expanded"><a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line">  <tt class="py-docstring">"""Build a Resource from the API description.</tt> </tt>
-<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, Object to make http requests with.</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"><tt class="py-docstring">    baseUrl: string, base URL for the API. All requests are relative to this</tt> </tt>
-<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"><tt class="py-docstring">      URI.</tt> </tt>
-<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line"><tt class="py-docstring">    model: apiclient.Model, converts to and from the wire format.</tt> </tt>
-<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: class or callable that instantiates an</tt> </tt>
-<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"><tt class="py-docstring">      apiclient.HttpRequest object.</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, key obtained from</tt> </tt>
-<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"><tt class="py-docstring">      https://code.google.com/apis/console</tt> </tt>
-<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"><tt class="py-docstring">    resourceDesc: object, section of deserialized discovery document that</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"><tt class="py-docstring">      describes a resource. Note that the top level discovery document</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"><tt class="py-docstring">      is considered a resource.</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line"><tt class="py-docstring">    rootDesc: object, the entire deserialized discovery document.</tt> </tt>
-<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"><tt class="py-docstring">    schema: object, mapping of schema names to schema descriptions.</tt> </tt>
-<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-docstring">    An instance of Resource with all the methods attached for interacting with</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"><tt class="py-docstring">    that resource.</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">  <tt class="py-keyword">class</tt> <tt class="py-def-name">Resource</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">    <tt class="py-docstring">"""A class for interacting with a resource."""</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line"> </tt>
-<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="apiclient.http
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">multiplier</tt><tt class="py-op">:</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">multiplier</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line"> </tt>
+<a name="_createResource"></a><div id="_createResource-def"><a name="L314"></a><tt class="py-lineno">314</tt> <a class="py-toggle" href="#" id="_createResource-toggle" onclick="return toggle('_createResource');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.discovery-module.html#_createResource">_createResource</a><tt class="py-op">(</tt><tt class="py-param">http</tt><tt class="py-op">,</tt> <tt class="py-param">baseUrl</tt><tt class="py-op">,</tt> <tt class="py-param">model</tt><tt class="py-op">,</tt> <tt class="py-param">requestBuilder</tt><tt class="py-op">,</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">                   <tt class="py-param">developerKey</tt><tt class="py-op">,</tt> <tt class="py-param">resourceDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">,</tt> <tt class="py-param">schema</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_createResource-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_createResource-expanded"><a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line">  <tt class="py-docstring">"""Build a Resource from the API description.</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, Object to make http requests with.</tt> </tt>
+<a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line"><tt class="py-docstring">    baseUrl: string, base URL for the API. All requests are relative to this</tt> </tt>
+<a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line"><tt class="py-docstring">      URI.</tt> </tt>
+<a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line"><tt class="py-docstring">    model: apiclient.Model, converts to and from the wire format.</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line"><tt class="py-docstring">    requestBuilder: class or callable that instantiates an</tt> </tt>
+<a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line"><tt class="py-docstring">      apiclient.HttpRequest object.</tt> </tt>
+<a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line"><tt class="py-docstring">    developerKey: string, key obtained from</tt> </tt>
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line"><tt class="py-docstring">      https://code.google.com/apis/console</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line"><tt class="py-docstring">    resourceDesc: object, section of deserialized discovery document that</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line"><tt class="py-docstring">      describes a resource. Note that the top level discovery document</tt> </tt>
+<a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line"><tt class="py-docstring">      is considered a resource.</tt> </tt>
+<a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line"><tt class="py-docstring">    rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line"><tt class="py-docstring">    schema: object, mapping of schema names to schema descriptions.</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line"><tt class="py-docstring">    An instance of Resource with all the methods attached for interacting with</tt> </tt>
+<a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line"><tt class="py-docstring">    that resource.</tt> </tt>
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line"> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">  <tt class="py-keyword">class</tt> <tt class="py-def-name">Resource</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">    <tt class="py-docstring">"""A class for interacting with a resource."""</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line"> </tt>
+<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">__init__</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-83', 'http', 'link-20');">http</a></tt> </tt>
-<a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">baseUrl</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-84', 'model', 'link-29');">model</a></tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> <tt class="py-op">=</tt> <tt class="py-name">developerKey</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt> <tt class="py-op">=</tt> <tt class="py-name">requestBuilder</tt> </tt>
-</div></div><a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line"> </tt>
-<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">    <tt class="py-docstring">"""Creates a method for attaching to a Resource.</tt> </tt>
-<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"><tt class="py-docstring">      theclass: type, the class to attach methods to.</tt> </tt>
-<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line"><tt class="py-docstring">      methodName: string, name of the method to use.</tt> </tt>
-<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-docstring">      methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
-<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring">        describes the method.</tt> </tt>
-<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-docstring">      rootDesc: object, the entire deserialized discovery document.</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">    <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name" targets="Function apiclient.discovery.fix_method_name()=apiclient.discovery-module.html#fix_method_name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-85', 'fix_method_name', 'link-85');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">    <tt class="py-name">pathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">    <tt class="py-name">httpMethod</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'httpMethod'</tt><tt class="py-op">]</tt> </tt>
-<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">    <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
-<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"> </tt>
-<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">    <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line">    <tt id="link-86" class="py-name" targets="Variable apiclient.model.BaseModel.accept=apiclient.model.BaseModel-class.html#accept,Variable apiclient.model.JsonModel.accept=apiclient.model.JsonModel-class.html#accept,Variable apiclient.model.MediaModel.accept=apiclient.model.MediaModel-class.html#accept,Variable apiclient.model.ProtocolBufferModel.accept=apiclient.model.ProtocolBufferModel-class.html#accept,Variable apiclient.model.RawModel.accept=apiclient.model.RawModel-class.html#accept"><a title="apiclient.model.BaseModel.accept
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">baseUrl</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-84', 'model', 'link-29');">model</a></tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> <tt class="py-op">=</tt> <tt class="py-name">developerKey</tt> </tt>
+<a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt> <tt class="py-op">=</tt> <tt class="py-name">requestBuilder</tt> </tt>
+</div></div><a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line"> </tt>
+<a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L349"></a><tt class="py-lineno">349</tt>  <tt class="py-line">    <tt class="py-docstring">"""Creates a method for attaching to a Resource.</tt> </tt>
+<a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L351"></a><tt class="py-lineno">351</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-docstring">      theclass: type, the class to attach methods to.</tt> </tt>
+<a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring">      methodName: string, name of the method to use.</tt> </tt>
+<a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line"><tt class="py-docstring">      methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line"><tt class="py-docstring">        describes the method.</tt> </tt>
+<a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line"><tt class="py-docstring">      rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">    <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-85" class="py-name" targets="Function apiclient.discovery.fix_method_name()=apiclient.discovery-module.html#fix_method_name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-85', 'fix_method_name', 'link-85');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">    <tt class="py-name">pathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'path'</tt><tt class="py-op">]</tt> </tt>
+<a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line">    <tt class="py-name">httpMethod</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'httpMethod'</tt><tt class="py-op">]</tt> </tt>
+<a name="L361"></a><tt class="py-lineno">361</tt>  <tt class="py-line">    <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> </tt>
+<a name="L362"></a><tt class="py-lineno">362</tt>  <tt class="py-line"> </tt>
+<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">    <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">    <tt id="link-86" class="py-name" targets="Variable apiclient.model.BaseModel.accept=apiclient.model.BaseModel-class.html#accept,Variable apiclient.model.JsonModel.accept=apiclient.model.JsonModel-class.html#accept,Variable apiclient.model.MediaModel.accept=apiclient.model.MediaModel-class.html#accept,Variable apiclient.model.ProtocolBufferModel.accept=apiclient.model.ProtocolBufferModel-class.html#accept,Variable apiclient.model.RawModel.accept=apiclient.model.RawModel-class.html#accept"><a title="apiclient.model.BaseModel.accept
 apiclient.model.JsonModel.accept
 apiclient.model.MediaModel.accept
 apiclient.model.ProtocolBufferModel.accept
 apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-86', 'accept', 'link-86');">accept</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L363"></a><tt class="py-lineno">363</tt>  <tt class="py-line">    <tt class="py-name">maxSize</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L364"></a><tt class="py-lineno">364</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'mediaUpload'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">      <tt class="py-name">mediaUpload</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'mediaUpload'</tt><tt class="py-op">]</tt> </tt>
-<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">      <tt class="py-comment"># TODO(jcgregorio) Use URLs from discovery once it is updated.</tt> </tt>
-<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">      <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">baseUrl</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">      <tt class="py-name">basePath</tt> <tt class="py-op">=</tt> <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">      <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-string">'/upload'</tt> <tt class="py-op">+</tt> <tt class="py-name">basePath</tt> <tt class="py-op">+</tt> <tt class="py-name">pathUrl</tt> </tt>
+<a name="L365"></a><tt class="py-lineno">365</tt>  <tt class="py-line">    <tt class="py-name">maxSize</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L366"></a><tt class="py-lineno">366</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'mediaUpload'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L367"></a><tt class="py-lineno">367</tt>  <tt class="py-line">      <tt class="py-name">mediaUpload</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'mediaUpload'</tt><tt class="py-op">]</tt> </tt>
+<a name="L368"></a><tt class="py-lineno">368</tt>  <tt class="py-line">      <tt class="py-name">mediaPathUrl</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">rootDesc</tt><tt class="py-op">[</tt><tt class="py-string">'rootUrl'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'upload/'</tt> <tt class="py-op">+</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">[</tt><tt class="py-string">'servicePath'</tt><tt class="py-op">]</tt> </tt>
+<a name="L369"></a><tt class="py-lineno">369</tt>  <tt class="py-line">                      <tt class="py-op">+</tt> <tt class="py-name">pathUrl</tt><tt class="py-op">)</tt> </tt>
 <a name="L370"></a><tt class="py-lineno">370</tt>  <tt class="py-line">      <tt id="link-87" class="py-name"><a title="apiclient.model.BaseModel.accept
 apiclient.model.JsonModel.accept
 apiclient.model.MediaModel.accept
@@ -639,357 +639,356 @@
 <a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line">        <tt class="py-name">actual_query_params</tt><tt class="py-op">[</tt><tt class="py-string">'key'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt> </tt>
 <a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line"> </tt>
 <a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">      <tt id="link-113" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-113', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line">      <tt class="py-comment"># If there is no schema for the response then presume a binary blob.</tt> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">        <tt id="link-114" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-114', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="apiclient.model.MediaModel" class="py-name" href="#" onclick="return doclink('link-115', 'MediaModel', 'link-33');">MediaModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">      <tt class="py-keyword">elif</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line">        <tt id="link-116" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-116', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="apiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-117', 'RawModel', 'link-36');">RawModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line"> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-118', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">        <tt id="link-114" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-114', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-115" class="py-name"><a title="apiclient.model.MediaModel" class="py-name" href="#" onclick="return doclink('link-115', 'MediaModel', 'link-33');">MediaModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">      <tt class="py-keyword">elif</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">        <tt id="link-116" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-116', 'model', 'link-29');">model</a></tt> <tt class="py-op">=</tt> <tt id="link-117" class="py-name"><a title="apiclient.model.RawModel" class="py-name" href="#" onclick="return doclink('link-117', 'RawModel', 'link-36');">RawModel</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line"> </tt>
+<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line">      <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">,</tt> <tt class="py-name">query</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt id="link-118" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-118', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-119', 'request', 'link-57');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line">          <tt class="py-name">actual_path_params</tt><tt class="py-op">,</tt> <tt class="py-name">actual_query_params</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line"> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line">      <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line">      <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line"> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line">      <tt id="link-120" class="py-name" targets="Method apiclient.http.MediaFileUpload.resumable()=apiclient.http.MediaFileUpload-class.html#resumable,Method apiclient.http.MediaInMemoryUpload.resumable()=apiclient.http.MediaInMemoryUpload-class.html#resumable,Method apiclient.http.MediaIoBaseUpload.resumable()=apiclient.http.MediaIoBaseUpload-class.html#resumable,Method apiclient.http.MediaUpload.resumable()=apiclient.http.MediaUpload-class.html#resumable"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">          <tt class="py-name">actual_path_params</tt><tt class="py-op">,</tt> <tt class="py-name">actual_query_params</tt><tt class="py-op">,</tt> <tt class="py-name">body_value</tt><tt class="py-op">)</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line"> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line">      <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">pathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line">      <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line"> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">      <tt id="link-120" class="py-name" targets="Method apiclient.http.MediaFileUpload.resumable()=apiclient.http.MediaFileUpload-class.html#resumable,Method apiclient.http.MediaInMemoryUpload.resumable()=apiclient.http.MediaInMemoryUpload-class.html#resumable,Method apiclient.http.MediaIoBaseUpload.resumable()=apiclient.http.MediaIoBaseUpload-class.html#resumable,Method apiclient.http.MediaUpload.resumable()=apiclient.http.MediaUpload-class.html#resumable"><a title="apiclient.http.MediaFileUpload.resumable
 apiclient.http.MediaInMemoryUpload.resumable
 apiclient.http.MediaIoBaseUpload.resumable
 apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-120', 'resumable', 'link-120');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line">      <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line"> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">media_filename</tt><tt class="py-op">:</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line">        <tt class="py-comment"># Ensure we end up with a valid MediaUpload object.</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line">          <tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">media_mime_type</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">UnknownFileType</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-121" class="py-name"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-121', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Function apiclient.mimeparse.best_match()=apiclient.mimeparse-module.html#best_match"><a title="apiclient.mimeparse.best_match" class="py-name" href="#" onclick="return doclink('link-122', 'best_match', 'link-122');">best_match</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-123" class="py-name"><a title="apiclient.model.BaseModel.accept
+<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line">      <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line"> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">media_filename</tt><tt class="py-op">:</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line">        <tt class="py-comment"># Ensure we end up with a valid MediaUpload object.</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">basestring</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line">          <tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">,</tt> <tt class="py-name">encoding</tt><tt class="py-op">)</tt> <tt class="py-op">=</tt> <tt class="py-name">mimetypes</tt><tt class="py-op">.</tt><tt class="py-name">guess_type</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">media_mime_type</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt class="py-name">UnknownFileType</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-121" class="py-name"><a title="apiclient.mimeparse" class="py-name" href="#" onclick="return doclink('link-121', 'mimeparse', 'link-0');">mimeparse</a></tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Function apiclient.mimeparse.best_match()=apiclient.mimeparse-module.html#best_match"><a title="apiclient.mimeparse.best_match" class="py-name" href="#" onclick="return doclink('link-122', 'best_match', 'link-122');">best_match</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">','</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-123" class="py-name"><a title="apiclient.model.BaseModel.accept
 apiclient.model.JsonModel.accept
 apiclient.model.MediaModel.accept
 apiclient.model.ProtocolBufferModel.accept
 apiclient.model.RawModel.accept" class="py-name" href="#" onclick="return doclink('link-123', 'accept', 'link-86');">accept</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt id="link-124" class="py-name"><a title="apiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-124', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt><tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">          <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="apiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-125', 'MediaFileUpload', 'link-24');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt id="link-126" class="py-name"><a title="apiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-126', 'MediaUpload', 'link-27');">MediaUpload</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">          <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_filename</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'media_filename must be str or MediaUpload.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line"> </tt>
-<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">        <tt class="py-comment"># Check the maxSize</tt> </tt>
-<a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">maxSize</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method apiclient.http.MediaFileUpload.size()=apiclient.http.MediaFileUpload-class.html#size,Method apiclient.http.MediaInMemoryUpload.size()=apiclient.http.MediaInMemoryUpload-class.html#size,Method apiclient.http.MediaIoBaseUpload.size()=apiclient.http.MediaIoBaseUpload-class.html#size,Method apiclient.http.MediaUpload.size()=apiclient.http.MediaUpload-class.html#size"><a title="apiclient.http.MediaFileUpload.size
+<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">            <tt class="py-keyword">raise</tt> <tt id="link-124" class="py-name"><a title="apiclient.errors.UnacceptableMimeTypeError" class="py-name" href="#" onclick="return doclink('link-124', 'UnacceptableMimeTypeError', 'link-12');">UnacceptableMimeTypeError</a></tt><tt class="py-op">(</tt><tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">          <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="apiclient.http.MediaFileUpload" class="py-name" href="#" onclick="return doclink('link-125', 'MediaFileUpload', 'link-24');">MediaFileUpload</a></tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt class="py-name">media_mime_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">media_filename</tt><tt class="py-op">,</tt> <tt id="link-126" class="py-name"><a title="apiclient.http.MediaUpload" class="py-name" href="#" onclick="return doclink('link-126', 'MediaUpload', 'link-27');">MediaUpload</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">          <tt class="py-name">media_upload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_filename</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'media_filename must be str or MediaUpload.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line"> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line">        <tt class="py-comment"># Check the maxSize</tt> </tt>
+<a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">maxSize</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt> <tt class="py-keyword">and</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name" targets="Method apiclient.http.MediaFileUpload.size()=apiclient.http.MediaFileUpload-class.html#size,Method apiclient.http.MediaInMemoryUpload.size()=apiclient.http.MediaInMemoryUpload-class.html#size,Method apiclient.http.MediaIoBaseUpload.size()=apiclient.http.MediaIoBaseUpload-class.html#size,Method apiclient.http.MediaUpload.size()=apiclient.http.MediaUpload-class.html#size"><a title="apiclient.http.MediaFileUpload.size
 apiclient.http.MediaInMemoryUpload.size
 apiclient.http.MediaIoBaseUpload.size
 apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-127', 'size', 'link-127');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-name">maxSize</tt><tt class="py-op">:</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-128" class="py-name"><a title="apiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-128', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media larger than: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line"> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line">        <tt class="py-comment"># Use the media path uri for media uploads</tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line">        <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">mediaPathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line">        <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line">          <tt class="py-keyword">raise</tt> <tt id="link-128" class="py-name"><a title="apiclient.errors.MediaUploadSizeError" class="py-name" href="#" onclick="return doclink('link-128', 'MediaUploadSizeError', 'link-9');">MediaUploadSizeError</a></tt><tt class="py-op">(</tt><tt class="py-string">"Media larger than: %s"</tt> <tt class="py-op">%</tt> <tt class="py-name">maxSize</tt><tt class="py-op">)</tt> </tt>
+<a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line"> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line">        <tt class="py-comment"># Use the media path uri for media uploads</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line">        <tt class="py-name">expanded_url</tt> <tt class="py-op">=</tt> <tt class="py-name">uritemplate</tt><tt class="py-op">.</tt><tt class="py-name">expand</tt><tt class="py-op">(</tt><tt class="py-name">mediaPathUrl</tt><tt class="py-op">,</tt> <tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line">        <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urljoin</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">expanded_url</tt> <tt class="py-op">+</tt> <tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
 apiclient.http.MediaInMemoryUpload.resumable
 apiclient.http.MediaIoBaseUpload.resumable
 apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-129', 'resumable', 'link-120');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line">          <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-130', '_add_query_parameter', 'link-54');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'resumable'</tt><tt class="py-op">)</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line"> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line">          <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-130', '_add_query_parameter', 'link-54');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'resumable'</tt><tt class="py-op">)</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line"> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
 apiclient.http.MediaInMemoryUpload.resumable
 apiclient.http.MediaIoBaseUpload.resumable
 apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-131', 'resumable', 'link-120');">resumable</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line">          <tt class="py-comment"># This is all we need to do for resumable, if the body exists it gets</tt> </tt>
-<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line">          <tt class="py-comment"># sent in the first request, otherwise an empty body is sent.</tt> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line">          <tt id="link-132" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line">          <tt class="py-comment"># This is all we need to do for resumable, if the body exists it gets</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line">          <tt class="py-comment"># sent in the first request, otherwise an empty body is sent.</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line">          <tt id="link-132" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
 apiclient.http.MediaInMemoryUpload.resumable
 apiclient.http.MediaIoBaseUpload.resumable
 apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-132', 'resumable', 'link-120');">resumable</a></tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line">          <tt class="py-comment"># A non-resumable upload</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line">            <tt class="py-comment"># This is a simple media upload</tt> </tt>
-<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line">            <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name" targets="Method apiclient.http.MediaFileUpload.mimetype()=apiclient.http.MediaFileUpload-class.html#mimetype,Method apiclient.http.MediaInMemoryUpload.mimetype()=apiclient.http.MediaInMemoryUpload-class.html#mimetype,Method apiclient.http.MediaIoBaseUpload.mimetype()=apiclient.http.MediaIoBaseUpload-class.html#mimetype,Method apiclient.http.MediaUpload.mimetype()=apiclient.http.MediaUpload-class.html#mimetype"><a title="apiclient.http.MediaFileUpload.mimetype
+<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line">          <tt class="py-comment"># A non-resumable upload</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">body</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line">            <tt class="py-comment"># This is a simple media upload</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line">            <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name" targets="Method apiclient.http.MediaFileUpload.mimetype()=apiclient.http.MediaFileUpload-class.html#mimetype,Method apiclient.http.MediaInMemoryUpload.mimetype()=apiclient.http.MediaInMemoryUpload-class.html#mimetype,Method apiclient.http.MediaIoBaseUpload.mimetype()=apiclient.http.MediaIoBaseUpload-class.html#mimetype,Method apiclient.http.MediaUpload.mimetype()=apiclient.http.MediaUpload-class.html#mimetype"><a title="apiclient.http.MediaFileUpload.mimetype
 apiclient.http.MediaInMemoryUpload.mimetype
 apiclient.http.MediaIoBaseUpload.mimetype
 apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-133', 'mimetype', 'link-133');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line">            <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name" targets="Method apiclient.http.MediaFileUpload.getbytes()=apiclient.http.MediaFileUpload-class.html#getbytes,Method apiclient.http.MediaInMemoryUpload.getbytes()=apiclient.http.MediaInMemoryUpload-class.html#getbytes,Method apiclient.http.MediaIoBaseUpload.getbytes()=apiclient.http.MediaIoBaseUpload-class.html#getbytes,Method apiclient.http.MediaUpload.getbytes()=apiclient.http.MediaUpload-class.html#getbytes"><a title="apiclient.http.MediaFileUpload.getbytes
+<a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line">            <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name" targets="Method apiclient.http.MediaFileUpload.getbytes()=apiclient.http.MediaFileUpload-class.html#getbytes,Method apiclient.http.MediaInMemoryUpload.getbytes()=apiclient.http.MediaInMemoryUpload-class.html#getbytes,Method apiclient.http.MediaIoBaseUpload.getbytes()=apiclient.http.MediaIoBaseUpload-class.html#getbytes,Method apiclient.http.MediaUpload.getbytes()=apiclient.http.MediaUpload-class.html#getbytes"><a title="apiclient.http.MediaFileUpload.getbytes
 apiclient.http.MediaInMemoryUpload.getbytes
 apiclient.http.MediaIoBaseUpload.getbytes
 apiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-134', 'getbytes', 'link-134');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="apiclient.http.MediaFileUpload.size
 apiclient.http.MediaInMemoryUpload.size
 apiclient.http.MediaIoBaseUpload.size
 apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-135', 'size', 'link-127');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line">            <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-136" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-136', '_add_query_parameter', 'link-54');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'media'</tt><tt class="py-op">)</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line">          <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line">            <tt class="py-comment"># This is a multipart/related upload.</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line">            <tt class="py-name">msgRoot</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'related'</tt><tt class="py-op">)</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line">            <tt class="py-comment"># msgRoot should not write out it's own headers</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">            <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line"> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">            <tt class="py-comment"># attach the body as one part</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line">            <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">            <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line">            <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line"> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line">            <tt class="py-comment"># attach the media as the second part</tt> </tt>
-<a name="L572"></a><tt class="py-lineno">572</tt>  <tt class="py-line">            <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
+<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line">            <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-136" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-136', '_add_query_parameter', 'link-54');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'media'</tt><tt class="py-op">)</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line">          <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line">            <tt class="py-comment"># This is a multipart/related upload.</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line">            <tt class="py-name">msgRoot</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMEMultipart</tt><tt class="py-op">(</tt><tt class="py-string">'related'</tt><tt class="py-op">)</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line">            <tt class="py-comment"># msgRoot should not write out it's own headers</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line">            <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">msgRoot</tt><tt class="py-op">,</tt> <tt class="py-string">'_write_headers'</tt><tt class="py-op">,</tt> <tt class="py-keyword">lambda</tt> <tt class="py-name">self</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line"> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line">            <tt class="py-comment"># attach the body as one part</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">            <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line">            <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">body</tt><tt class="py-op">)</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">            <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line"> </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line">            <tt class="py-comment"># attach the media as the second part</tt> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line">            <tt class="py-name">msg</tt> <tt class="py-op">=</tt> <tt class="py-name">MIMENonMultipart</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
 apiclient.http.MediaInMemoryUpload.mimetype
 apiclient.http.MediaIoBaseUpload.mimetype
 apiclient.http.MediaUpload.mimetype" class="py-name" href="#" onclick="return doclink('link-137', 'mimetype', 'link-133');">mimetype</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line">            <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt>  <tt class="py-line"> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt>  <tt class="py-line">            <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="apiclient.http.MediaFileUpload.getbytes
+<a name="L572"></a><tt class="py-lineno">572</tt>  <tt class="py-line">            <tt class="py-name">msg</tt><tt class="py-op">[</tt><tt class="py-string">'Content-Transfer-Encoding'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'binary'</tt> </tt>
+<a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line"> </tt>
+<a name="L574"></a><tt class="py-lineno">574</tt>  <tt class="py-line">            <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="apiclient.http.MediaFileUpload.getbytes
 apiclient.http.MediaInMemoryUpload.getbytes
 apiclient.http.MediaIoBaseUpload.getbytes
 apiclient.http.MediaUpload.getbytes" class="py-name" href="#" onclick="return doclink('link-138', 'getbytes', 'link-134');">getbytes</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">media_upload</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="apiclient.http.MediaFileUpload.size
 apiclient.http.MediaInMemoryUpload.size
 apiclient.http.MediaIoBaseUpload.size
 apiclient.http.MediaUpload.size" class="py-name" href="#" onclick="return doclink('link-139', 'size', 'link-127');">size</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">            <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">            <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line">            <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">as_string</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line"> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line">            <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt>  <tt class="py-line">            <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/related; '</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line">                                       <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">multipart_boundary</tt> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt>  <tt class="py-line">            <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-140" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-140', '_add_query_parameter', 'link-54');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'multipart'</tt><tt class="py-op">)</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line"> </tt>
-<a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line">      <tt id="link-141" class="py-name"><a title="apiclient.discovery.logger
+<a name="L575"></a><tt class="py-lineno">575</tt>  <tt class="py-line">            <tt class="py-name">msg</tt><tt class="py-op">.</tt><tt class="py-name">set_payload</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
+<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">            <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">attach</tt><tt class="py-op">(</tt><tt class="py-name">msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">            <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">as_string</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line"> </tt>
+<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line">            <tt class="py-name">multipart_boundary</tt> <tt class="py-op">=</tt> <tt class="py-name">msgRoot</tt><tt class="py-op">.</tt><tt class="py-name">get_boundary</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line">            <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'content-type'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-string">'multipart/related; '</tt> </tt>
+<a name="L581"></a><tt class="py-lineno">581</tt>  <tt class="py-line">                                       <tt class="py-string">'boundary="%s"'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">multipart_boundary</tt> </tt>
+<a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line">            <tt class="py-name">url</tt> <tt class="py-op">=</tt> <tt id="link-140" class="py-name"><a title="apiclient.discovery._add_query_parameter" class="py-name" href="#" onclick="return doclink('link-140', '_add_query_parameter', 'link-54');">_add_query_parameter</a></tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-string">'uploadType'</tt><tt class="py-op">,</tt> <tt class="py-string">'multipart'</tt><tt class="py-op">)</tt> </tt>
+<a name="L583"></a><tt class="py-lineno">583</tt>  <tt class="py-line"> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line">      <tt id="link-141" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-141', 'logger', 'link-42');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line">                                  <tt id="link-142" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-142', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Method apiclient.model.BaseModel.response()=apiclient.model.BaseModel-class.html#response,Method apiclient.model.Model.response()=apiclient.model.Model-class.html#response"><a title="apiclient.model.BaseModel.response
+<a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line">                                  <tt id="link-142" class="py-name"><a title="apiclient.model" class="py-name" href="#" onclick="return doclink('link-142', 'model', 'link-29');">model</a></tt><tt class="py-op">.</tt><tt id="link-143" class="py-name" targets="Method apiclient.model.BaseModel.response()=apiclient.model.BaseModel-class.html#response,Method apiclient.model.Model.response()=apiclient.model.Model-class.html#response"><a title="apiclient.model.BaseModel.response
 apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-143', 'response', 'link-143');">response</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">                                  <tt class="py-name">url</tt><tt class="py-op">,</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">                                  <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line">                                  <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt>  <tt class="py-line">                                  <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">                                  <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">,</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">                                  <tt id="link-144" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
+<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line">                                  <tt class="py-name">url</tt><tt class="py-op">,</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">                                  <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-name">httpMethod</tt><tt class="py-op">,</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">                                  <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line">                                  <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt>  <tt class="py-line">                                  <tt class="py-name">methodId</tt><tt class="py-op">=</tt><tt class="py-name">methodId</tt><tt class="py-op">,</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">                                  <tt id="link-144" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
 apiclient.http.MediaInMemoryUpload.resumable
 apiclient.http.MediaIoBaseUpload.resumable
 apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-144', 'resumable', 'link-120');">resumable</a></tt><tt class="py-op">=</tt><tt id="link-145" class="py-name"><a title="apiclient.http.MediaFileUpload.resumable
 apiclient.http.MediaInMemoryUpload.resumable
 apiclient.http.MediaIoBaseUpload.resumable
 apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-145', 'resumable', 'link-120');">resumable</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line"> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">    <tt class="py-name">docs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="apiclient.schema.Schemas.get
+</div><a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line"> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line">    <tt class="py-name">docs</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-146', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt id="link-147" class="py-name"><a title="apiclient.discovery.DEFAULT_METHOD_DOC" class="py-name" href="#" onclick="return doclink('link-147', 'DEFAULT_METHOD_DOC', 'link-46');">DEFAULT_METHOD_DOC</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'\n\n'</tt><tt class="py-op">]</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">argmap</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Args:\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line"> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">    <tt class="py-comment"># Skip undocumented params and params common to all methods.</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line">    <tt class="py-name">skip_parameters</tt> <tt class="py-op">=</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">argmap</tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">      <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'Args:\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line"> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line">    <tt class="py-comment"># Skip undocumented params and params common to all methods.</tt> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">    <tt class="py-name">skip_parameters</tt> <tt class="py-op">=</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-148', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line">    <tt class="py-name">skip_parameters</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt id="link-149" class="py-name"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-149', 'STACK_QUERY_PARAMETERS', 'link-47');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line"> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">    <tt class="py-name">all_args</tt> <tt class="py-op">=</tt> <tt class="py-name">argmap</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line">    <tt class="py-name">args_ordered</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-150" class="py-name"><a title="apiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-150', 'key2param', 'link-93');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line">    <tt class="py-name">skip_parameters</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt id="link-149" class="py-name"><a title="apiclient.discovery.STACK_QUERY_PARAMETERS" class="py-name" href="#" onclick="return doclink('link-149', 'STACK_QUERY_PARAMETERS', 'link-47');">STACK_QUERY_PARAMETERS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line"> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line">    <tt class="py-name">all_args</tt> <tt class="py-op">=</tt> <tt class="py-name">argmap</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">    <tt class="py-name">args_ordered</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt id="link-150" class="py-name"><a title="apiclient.discovery.key2param" class="py-name" href="#" onclick="return doclink('link-150', 'key2param', 'link-93');">key2param</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">s</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-151', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameterOrder'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line"> </tt>
-<a name="L606"></a><tt class="py-lineno">606</tt>  <tt class="py-line">    <tt class="py-comment"># Move body to the front of the line.</tt> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">      <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line"> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">        <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line"> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">skip_parameters</tt><tt class="py-op">:</tt> </tt>
-<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">        <tt class="py-keyword">continue</tt> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line"> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">      <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">        <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">' (repeated)'</tt> </tt>
-<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">      <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line">        <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">' (required)'</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">      <tt class="py-name">paramdesc</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">arg</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line">      <tt class="py-name">paramdoc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line"> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line">    <tt class="py-comment"># Move body to the front of the line.</tt> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'body'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">      <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line"> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">all_args</tt><tt class="py-op">:</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">name</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line">        <tt class="py-name">args_ordered</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line"> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">args_ordered</tt><tt class="py-op">:</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">skip_parameters</tt><tt class="py-op">:</tt> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line">        <tt class="py-keyword">continue</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line"> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">      <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">repeated_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">        <tt class="py-name">repeated</tt> <tt class="py-op">=</tt> <tt class="py-string">' (repeated)'</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">      <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">arg</tt> <tt class="py-keyword">in</tt> <tt class="py-name">required_params</tt><tt class="py-op">:</tt> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">        <tt class="py-name">required</tt> <tt class="py-op">=</tt> <tt class="py-string">' (required)'</tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line">      <tt class="py-name">paramdesc</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'parameters'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">argmap</tt><tt class="py-op">[</tt><tt class="py-name">arg</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">      <tt class="py-name">paramdoc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-152', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">'A parameter'</tt><tt class="py-op">)</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> </tt>
-<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'  %s: object, %s%s%s\n    The object takes the'</tt> </tt>
-<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">            <tt class="py-string">' form of:\n\n%s\n\n'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> <tt class="py-name">repeated</tt><tt class="py-op">,</tt> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line">              <tt id="link-153" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-153', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintByName()=apiclient.schema.Schemas-class.html#prettyPrintByName"><a title="apiclient.schema.Schemas.prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-154', 'prettyPrintByName', 'link-154');">prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">paramdesc</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">        <tt class="py-name">paramtype</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line">            <tt class="py-op">(</tt><tt class="py-string">'  %s: object, %s%s%s\n    The object takes the'</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">            <tt class="py-string">' form of:\n\n%s\n\n'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> <tt class="py-name">repeated</tt><tt class="py-op">,</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">              <tt id="link-153" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-153', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintByName()=apiclient.schema.Schemas-class.html#prettyPrintByName"><a title="apiclient.schema.Schemas.prettyPrintByName" class="py-name" href="#" onclick="return doclink('link-154', 'prettyPrintByName', 'link-154');">prettyPrintByName</a></tt><tt class="py-op">(</tt><tt class="py-name">paramdesc</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">        <tt class="py-name">paramtype</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-155', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'type'</tt><tt class="py-op">,</tt> <tt class="py-string">'string'</tt><tt class="py-op">)</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'  %s: %s, %s%s%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramtype</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line">                                            <tt class="py-name">repeated</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line">      <tt class="py-name">enum</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'  %s: %s, %s%s%s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">arg</tt><tt class="py-op">,</tt> <tt class="py-name">paramtype</tt><tt class="py-op">,</tt> <tt class="py-name">paramdoc</tt><tt class="py-op">,</tt> <tt class="py-name">required</tt><tt class="py-op">,</tt> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">                                            <tt class="py-name">repeated</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line">      <tt class="py-name">enum</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-156', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enum'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">      <tt class="py-name">enumDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line">      <tt class="py-name">enumDesc</tt> <tt class="py-op">=</tt> <tt class="py-name">paramdesc</tt><tt class="py-op">.</tt><tt id="link-157" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-157', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'enumDescriptions'</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">enum</tt> <tt class="py-keyword">and</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'    Allowed values\n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">enum</tt><tt class="py-op">,</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">          <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'      %s - %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  The media object as a string.\n\n    '</tt><tt class="py-op">)</tt> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  An object of the form:\n\n    '</tt><tt class="py-op">)</tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-158" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-158', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintSchema()=apiclient.schema.Schemas-class.html#prettyPrintSchema"><a title="apiclient.schema.Schemas.prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-159', 'prettyPrintSchema', 'link-159');">prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line"> </tt>
-<a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">docs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line"> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt>  <tt class="py-line">    <tt class="py-docstring">"""Creates any _next methods for attaching to a Resource.</tt> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line"><tt class="py-docstring">    The _next methods allow for easy iteration through list() responses.</tt> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line"><tt class="py-docstring">      theclass: type, the class to attach methods to.</tt> </tt>
-<a name="L658"></a><tt class="py-lineno">658</tt>  <tt class="py-line"><tt class="py-docstring">      methodName: string, name of the method to use.</tt> </tt>
-<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line"><tt class="py-docstring">      methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
-<a name="L660"></a><tt class="py-lineno">660</tt>  <tt class="py-line"><tt class="py-docstring">        describes the method.</tt> </tt>
-<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line"><tt class="py-docstring">      rootDesc: object, the entire deserialized discovery document.</tt> </tt>
-<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line">    <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-160" class="py-name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-160', 'fix_method_name', 'link-85');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line">    <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'.next'</tt> </tt>
-<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line"> </tt>
-<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">methodNext</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">previous_request</tt><tt class="py-op">,</tt> <tt class="py-param">previous_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line">      <tt class="py-docstring">"""Retrieves the next page of results.</tt> </tt>
-<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line"><tt class="py-docstring">Args:</tt> </tt>
-<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line"><tt class="py-docstring">  previous_request: The request for the previous page. (required)</tt> </tt>
-<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line"><tt class="py-docstring">  previous_response: The response from the request for the previous page. (required)</tt> </tt>
-<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line"><tt class="py-docstring">Returns:</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line"><tt class="py-docstring">  A request object that you can call 'execute()' on to request the next</tt> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line"><tt class="py-docstring">  page. Returns None if there are no more items in the collection.</tt> </tt>
-<a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line"><tt class="py-docstring">      """</tt> </tt>
-<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line">      <tt class="py-comment"># Retrieve nextPageToken from previous_response</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line">      <tt class="py-comment"># Use as pageToken in previous_request to create new request.</tt> </tt>
-<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line"> </tt>
-<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">previous_response</tt><tt class="py-op">:</tt> </tt>
-<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
-<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line"> </tt>
-<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line">      <tt id="link-161" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">enum</tt> <tt class="py-keyword">and</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'    Allowed values\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">zip</tt><tt class="py-op">(</tt><tt class="py-name">enum</tt><tt class="py-op">,</tt> <tt class="py-name">enumDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">          <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'      %s - %s\n'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">name</tt><tt class="py-op">,</tt> <tt class="py-name">desc</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">methodName</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'_media'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  The media object as a string.\n\n    '</tt><tt class="py-op">)</tt> </tt>
+<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">'\nReturns:\n  An object of the form:\n\n    '</tt><tt class="py-op">)</tt> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">        <tt class="py-name">docs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-158" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-158', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-159" class="py-name" targets="Method apiclient.schema.Schemas.prettyPrintSchema()=apiclient.schema.Schemas-class.html#prettyPrintSchema"><a title="apiclient.schema.Schemas.prettyPrintSchema" class="py-name" href="#" onclick="return doclink('link-159', 'prettyPrintSchema', 'link-159');">prettyPrintSchema</a></tt><tt class="py-op">(</tt><tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line"> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">docs</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line"> </tt>
+<a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line">  <tt class="py-keyword">def</tt> <tt class="py-def-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line">    <tt class="py-docstring">"""Creates any _next methods for attaching to a Resource.</tt> </tt>
+<a name="L652"></a><tt class="py-lineno">652</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line"><tt class="py-docstring">    The _next methods allow for easy iteration through list() responses.</tt> </tt>
+<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line"><tt class="py-docstring">      theclass: type, the class to attach methods to.</tt> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line"><tt class="py-docstring">      methodName: string, name of the method to use.</tt> </tt>
+<a name="L658"></a><tt class="py-lineno">658</tt>  <tt class="py-line"><tt class="py-docstring">      methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line"><tt class="py-docstring">        describes the method.</tt> </tt>
+<a name="L660"></a><tt class="py-lineno">660</tt>  <tt class="py-line"><tt class="py-docstring">      rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line">    <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-160" class="py-name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-160', 'fix_method_name', 'link-85');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line">    <tt class="py-name">methodId</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'id'</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">'.next'</tt> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line"> </tt>
+<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">methodNext</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">previous_request</tt><tt class="py-op">,</tt> <tt class="py-param">previous_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line">      <tt class="py-docstring">"""Retrieves the next page of results.</tt> </tt>
+<a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line"><tt class="py-docstring">Args:</tt> </tt>
+<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line"><tt class="py-docstring">  previous_request: The request for the previous page. (required)</tt> </tt>
+<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line"><tt class="py-docstring">  previous_response: The response from the request for the previous page. (required)</tt> </tt>
+<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line"><tt class="py-docstring">Returns:</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line"><tt class="py-docstring">  A request object that you can call 'execute()' on to request the next</tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line"><tt class="py-docstring">  page. Returns None if there are no more items in the collection.</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line"><tt class="py-docstring">      """</tt> </tt>
+<a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line">      <tt class="py-comment"># Retrieve nextPageToken from previous_response</tt> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line">      <tt class="py-comment"># Use as pageToken in previous_request to create new request.</tt> </tt>
+<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line"> </tt>
+<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">previous_response</tt><tt class="py-op">:</tt> </tt>
+<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> </tt>
+<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line"> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line">      <tt id="link-161" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-161', 'request', 'link-57');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">previous_request</tt><tt class="py-op">)</tt> </tt>
-<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line"> </tt>
-<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line">      <tt class="py-name">pageToken</tt> <tt class="py-op">=</tt> <tt class="py-name">previous_response</tt><tt class="py-op">[</tt><tt class="py-string">'nextPageToken'</tt><tt class="py-op">]</tt> </tt>
-<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">      <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-162" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line"> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line">      <tt class="py-name">pageToken</tt> <tt class="py-op">=</tt> <tt class="py-name">previous_response</tt><tt class="py-op">[</tt><tt class="py-string">'nextPageToken'</tt><tt class="py-op">]</tt> </tt>
+<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line">      <tt class="py-name">parsed</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-162" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-162', 'request', 'link-57');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line">      <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line"> </tt>
-<a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line">      <tt class="py-comment"># Find and remove old 'pageToken' value from URI</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">      <tt class="py-name">newq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">q</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'pageToken'</tt><tt class="py-op">]</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">      <tt class="py-name">newq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'pageToken'</tt><tt class="py-op">,</tt> <tt class="py-name">pageToken</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line">      <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">newq</tt><tt class="py-op">)</tt> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line">      <tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">)</tt> </tt>
-<a name="L694"></a><tt class="py-lineno">694</tt>  <tt class="py-line"> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line">      <tt id="link-163" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">      <tt class="py-name">q</tt> <tt class="py-op">=</tt> <tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line"> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line">      <tt class="py-comment"># Find and remove old 'pageToken' value from URI</tt> </tt>
+<a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line">      <tt class="py-name">newq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">q</tt> <tt class="py-keyword">if</tt> <tt class="py-name">key</tt> <tt class="py-op">!=</tt> <tt class="py-string">'pageToken'</tt><tt class="py-op">]</tt> </tt>
+<a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">      <tt class="py-name">newq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-string">'pageToken'</tt><tt class="py-op">,</tt> <tt class="py-name">pageToken</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">      <tt class="py-name">parsed</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">newq</tt><tt class="py-op">)</tt> </tt>
+<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line">      <tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt><tt class="py-name">parsed</tt><tt class="py-op">)</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line"> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt>  <tt class="py-line">      <tt id="link-163" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-163', 'request', 'link-57');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> <tt class="py-op">=</tt> <tt class="py-name">uri</tt> </tt>
-<a name="L696"></a><tt class="py-lineno">696</tt>  <tt class="py-line"> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line">      <tt id="link-164" class="py-name"><a title="apiclient.discovery.logger
+<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line"> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt>  <tt class="py-line">      <tt id="link-164" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-164', 'logger', 'link-42');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'URL being requested: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line"> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-165" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line"> </tt>
+<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-165" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-165', 'request', 'link-57');">request</a></tt> </tt>
-</div><a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line"> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodNext</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line"> </tt>
-<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line">  <tt class="py-comment"># Add basic methods to Resource</tt> </tt>
-<a name="L704"></a><tt class="py-lineno">704</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L705"></a><tt class="py-lineno">705</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">      <tt class="py-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
-<a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line">      <tt class="py-comment"># Add in _media methods. The functionality of the attached method will</tt> </tt>
-<a name="L708"></a><tt class="py-lineno">708</tt>  <tt class="py-line">      <tt class="py-comment"># change when it sees that the method name ends in _media.</tt> </tt>
-<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="apiclient.schema.Schemas.get
+</div><a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line"> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodNext</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line"> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line">  <tt class="py-comment"># Add basic methods to Resource</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L705"></a><tt class="py-lineno">705</tt>  <tt class="py-line">      <tt class="py-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">      <tt class="py-comment"># Add in _media methods. The functionality of the attached method will</tt> </tt>
+<a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line">      <tt class="py-comment"># change when it sees that the method name ends in _media.</tt> </tt>
+<a name="L708"></a><tt class="py-lineno">708</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-166', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'supportsMediaDownload'</tt><tt class="py-op">,</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line">        <tt class="py-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_media'</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line"> </tt>
-<a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line">  <tt class="py-comment"># Add in nested resources</tt> </tt>
-<a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'resources'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line"> </tt>
-<a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L716"></a><tt class="py-lineno">716</tt>  <tt class="py-line">      <tt class="py-docstring">"""Create a method on the Resource to access a nested Resource.</tt> </tt>
-<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line"><tt class="py-docstring">      Args:</tt> </tt>
-<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line"><tt class="py-docstring">        theclass: type, the class to attach methods to.</tt> </tt>
-<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line"><tt class="py-docstring">        methodName: string, name of the method to use.</tt> </tt>
-<a name="L721"></a><tt class="py-lineno">721</tt>  <tt class="py-line"><tt class="py-docstring">        methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
-<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line"><tt class="py-docstring">          describes the method.</tt> </tt>
-<a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line"><tt class="py-docstring">        rootDesc: object, the entire deserialized discovery document.</tt> </tt>
-<a name="L724"></a><tt class="py-lineno">724</tt>  <tt class="py-line"><tt class="py-docstring">      """</tt> </tt>
-<a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line">      <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-167" class="py-name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-167', 'fix_method_name', 'link-85');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line"> </tt>
-<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">      <tt class="py-keyword">def</tt> <tt class="py-def-name">methodResource</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-168" class="py-name"><a title="apiclient.discovery._createResource" class="py-name" href="#" onclick="return doclink('link-168', '_createResource', 'link-76');">_createResource</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">,</tt> </tt>
-<a name="L729"></a><tt class="py-lineno">729</tt>  <tt class="py-line">                              <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">,</tt> </tt>
-<a name="L730"></a><tt class="py-lineno">730</tt>  <tt class="py-line">                              <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> <tt id="link-169" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-169', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line"> </tt>
-<a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line">      <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">'A collection resource.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L733"></a><tt class="py-lineno">733</tt>  <tt class="py-line">      <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__is_resource__'</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line">      <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodResource</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line"> </tt>
-<a name="L736"></a><tt class="py-lineno">736</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'resources'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line">      <tt class="py-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
-<a name="L738"></a><tt class="py-lineno">738</tt>  <tt class="py-line"> </tt>
-<a name="L739"></a><tt class="py-lineno">739</tt>  <tt class="py-line">  <tt class="py-comment"># Add _next() methods</tt> </tt>
-<a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line">  <tt class="py-comment"># Look for response bodies in schema that contain nextPageToken, and methods</tt> </tt>
-<a name="L741"></a><tt class="py-lineno">741</tt>  <tt class="py-line">  <tt class="py-comment"># that take a pageToken parameter.</tt> </tt>
-<a name="L742"></a><tt class="py-lineno">742</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L743"></a><tt class="py-lineno">743</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L744"></a><tt class="py-lineno">744</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
-<a name="L745"></a><tt class="py-lineno">745</tt>  <tt class="py-line">        <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt> </tt>
-<a name="L746"></a><tt class="py-lineno">746</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">:</tt> </tt>
-<a name="L747"></a><tt class="py-lineno">747</tt>  <tt class="py-line">          <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-170', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">        <tt class="py-name">createMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_media'</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
+<a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line"> </tt>
+<a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line">  <tt class="py-comment"># Add in nested resources</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'resources'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line"> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line">    <tt class="py-keyword">def</tt> <tt class="py-def-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-param">theclass</tt><tt class="py-op">,</tt> <tt class="py-param">methodName</tt><tt class="py-op">,</tt> <tt class="py-param">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-param">rootDesc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line">      <tt class="py-docstring">"""Create a method on the Resource to access a nested Resource.</tt> </tt>
+<a name="L716"></a><tt class="py-lineno">716</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line"><tt class="py-docstring">      Args:</tt> </tt>
+<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line"><tt class="py-docstring">        theclass: type, the class to attach methods to.</tt> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line"><tt class="py-docstring">        methodName: string, name of the method to use.</tt> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line"><tt class="py-docstring">        methodDesc: object, fragment of deserialized discovery document that</tt> </tt>
+<a name="L721"></a><tt class="py-lineno">721</tt>  <tt class="py-line"><tt class="py-docstring">          describes the method.</tt> </tt>
+<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line"><tt class="py-docstring">        rootDesc: object, the entire deserialized discovery document.</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line"><tt class="py-docstring">      """</tt> </tt>
+<a name="L724"></a><tt class="py-lineno">724</tt>  <tt class="py-line">      <tt class="py-name">methodName</tt> <tt class="py-op">=</tt> <tt id="link-167" class="py-name"><a title="apiclient.discovery.fix_method_name" class="py-name" href="#" onclick="return doclink('link-167', 'fix_method_name', 'link-85');">fix_method_name</a></tt><tt class="py-op">(</tt><tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line"> </tt>
+<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line">      <tt class="py-keyword">def</tt> <tt class="py-def-name">methodResource</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-168" class="py-name"><a title="apiclient.discovery._createResource" class="py-name" href="#" onclick="return doclink('link-168', '_createResource', 'link-76');">_createResource</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_http</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_baseUrl</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_model</tt><tt class="py-op">,</tt> </tt>
+<a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line">                              <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_requestBuilder</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_developerKey</tt><tt class="py-op">,</tt> </tt>
+<a name="L729"></a><tt class="py-lineno">729</tt>  <tt class="py-line">                              <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">,</tt> <tt id="link-169" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-169', 'schema', 'link-38');">schema</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L730"></a><tt class="py-lineno">730</tt>  <tt class="py-line"> </tt>
+<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line">      <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__doc__'</tt><tt class="py-op">,</tt> <tt class="py-string">'A collection resource.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line">      <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">methodResource</tt><tt class="py-op">,</tt> <tt class="py-string">'__is_resource__'</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L733"></a><tt class="py-lineno">733</tt>  <tt class="py-line">      <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">theclass</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodResource</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line"> </tt>
+<a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'resources'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L736"></a><tt class="py-lineno">736</tt>  <tt class="py-line">      <tt class="py-name">createResourceMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">,</tt> <tt class="py-name">rootDesc</tt><tt class="py-op">)</tt> </tt>
+<a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line"> </tt>
+<a name="L738"></a><tt class="py-lineno">738</tt>  <tt class="py-line">  <tt class="py-comment"># Add _next() methods</tt> </tt>
+<a name="L739"></a><tt class="py-lineno">739</tt>  <tt class="py-line">  <tt class="py-comment"># Look for response bodies in schema that contain nextPageToken, and methods</tt> </tt>
+<a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line">  <tt class="py-comment"># that take a pageToken parameter.</tt> </tt>
+<a name="L741"></a><tt class="py-lineno">741</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-string">'methods'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L742"></a><tt class="py-lineno">742</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">methodName</tt><tt class="py-op">,</tt> <tt class="py-name">methodDesc</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L743"></a><tt class="py-lineno">743</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'response'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">:</tt> </tt>
+<a name="L744"></a><tt class="py-lineno">744</tt>  <tt class="py-line">        <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">[</tt><tt class="py-string">'response'</tt><tt class="py-op">]</tt> </tt>
+<a name="L745"></a><tt class="py-lineno">745</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">:</tt> </tt>
+<a name="L746"></a><tt class="py-lineno">746</tt>  <tt class="py-line">          <tt class="py-name">responseSchema</tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-170', 'schema', 'link-38');">schema</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-171', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">responseSchema</tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L748"></a><tt class="py-lineno">748</tt>  <tt class="py-line">        <tt class="py-name">hasNextPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L747"></a><tt class="py-lineno">747</tt>  <tt class="py-line">        <tt class="py-name">hasNextPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'nextPageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">responseSchema</tt><tt class="py-op">.</tt><tt id="link-172" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-172', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> </tt>
-<a name="L749"></a><tt class="py-lineno">749</tt>  <tt class="py-line">                                                                 <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L750"></a><tt class="py-lineno">750</tt>  <tt class="py-line">        <tt class="py-name">hasPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'pageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L748"></a><tt class="py-lineno">748</tt>  <tt class="py-line">                                                                 <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L749"></a><tt class="py-lineno">749</tt>  <tt class="py-line">        <tt class="py-name">hasPageToken</tt> <tt class="py-op">=</tt> <tt class="py-string">'pageToken'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">methodDesc</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-173', 'get', 'link-73');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'parameters'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L751"></a><tt class="py-lineno">751</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasNextPageToken</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasPageToken</tt><tt class="py-op">:</tt> </tt>
-<a name="L752"></a><tt class="py-lineno">752</tt>  <tt class="py-line">          <tt class="py-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_next'</tt><tt class="py-op">,</tt> </tt>
-<a name="L753"></a><tt class="py-lineno">753</tt>  <tt class="py-line">                           <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">methodName</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L754"></a><tt class="py-lineno">754</tt>  <tt class="py-line">                           <tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
-<a name="L755"></a><tt class="py-lineno">755</tt>  <tt class="py-line"> </tt>
-<a name="L756"></a><tt class="py-lineno">756</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">Resource</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L757"></a><tt class="py-lineno">757</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L750"></a><tt class="py-lineno">750</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">hasNextPageToken</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasPageToken</tt><tt class="py-op">:</tt> </tt>
+<a name="L751"></a><tt class="py-lineno">751</tt>  <tt class="py-line">          <tt class="py-name">createNextMethod</tt><tt class="py-op">(</tt><tt class="py-name">Resource</tt><tt class="py-op">,</tt> <tt class="py-name">methodName</tt> <tt class="py-op">+</tt> <tt class="py-string">'_next'</tt><tt class="py-op">,</tt> </tt>
+<a name="L752"></a><tt class="py-lineno">752</tt>  <tt class="py-line">                           <tt class="py-name">resourceDesc</tt><tt class="py-op">[</tt><tt class="py-string">'methods'</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">methodName</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L753"></a><tt class="py-lineno">753</tt>  <tt class="py-line">                           <tt class="py-name">methodName</tt><tt class="py-op">)</tt> </tt>
+<a name="L754"></a><tt class="py-lineno">754</tt>  <tt class="py-line"> </tt>
+<a name="L755"></a><tt class="py-lineno">755</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">Resource</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L756"></a><tt class="py-lineno">756</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -1019,7 +1018,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors-module.html b/docs/epy/apiclient.errors-module.html
index 8d836c6..202c612 100644
--- a/docs/epy/apiclient.errors-module.html
+++ b/docs/epy/apiclient.errors-module.html
@@ -219,7 +219,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors-pysrc.html b/docs/epy/apiclient.errors-pysrc.html
index 37610d2..5f9f6b9 100644
--- a/docs/epy/apiclient.errors-pysrc.html
+++ b/docs/epy/apiclient.errors-pysrc.html
@@ -285,7 +285,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.BatchError-class.html b/docs/epy/apiclient.errors.BatchError-class.html
index 775008a..2765285 100644
--- a/docs/epy/apiclient.errors.BatchError-class.html
+++ b/docs/epy/apiclient.errors.BatchError-class.html
@@ -325,7 +325,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.Error-class.html b/docs/epy/apiclient.errors.Error-class.html
index ccad8c1..a23dff0 100644
--- a/docs/epy/apiclient.errors.Error-class.html
+++ b/docs/epy/apiclient.errors.Error-class.html
@@ -176,7 +176,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.HttpError-class.html b/docs/epy/apiclient.errors.HttpError-class.html
index 72d1b25..07fe4a0 100644
--- a/docs/epy/apiclient.errors.HttpError-class.html
+++ b/docs/epy/apiclient.errors.HttpError-class.html
@@ -339,7 +339,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.InvalidJsonError-class.html b/docs/epy/apiclient.errors.InvalidJsonError-class.html
index 01b27a7..1fcdd56 100644
--- a/docs/epy/apiclient.errors.InvalidJsonError-class.html
+++ b/docs/epy/apiclient.errors.InvalidJsonError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.MediaUploadSizeError-class.html b/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
index 7c276c9..f7d2134 100644
--- a/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
+++ b/docs/epy/apiclient.errors.MediaUploadSizeError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.ResumableUploadError-class.html b/docs/epy/apiclient.errors.ResumableUploadError-class.html
index 842774a..56f8df1 100644
--- a/docs/epy/apiclient.errors.ResumableUploadError-class.html
+++ b/docs/epy/apiclient.errors.ResumableUploadError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html b/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
index 13ea27d..39c6daa 100644
--- a/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
+++ b/docs/epy/apiclient.errors.UnacceptableMimeTypeError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnexpectedBodyError-class.html b/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
index 068e512..a02d8a1 100644
--- a/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
+++ b/docs/epy/apiclient.errors.UnexpectedBodyError-class.html
@@ -232,7 +232,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnexpectedMethodError-class.html b/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
index 9e4d039..f580c65 100644
--- a/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
+++ b/docs/epy/apiclient.errors.UnexpectedMethodError-class.html
@@ -230,7 +230,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html b/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
index 98e9829..5cf31a6 100644
--- a/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
+++ b/docs/epy/apiclient.errors.UnknownApiNameOrVersion-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.errors.UnknownLinkType-class.html b/docs/epy/apiclient.errors.UnknownLinkType-class.html
index 06d3729..829f509 100644
--- a/docs/epy/apiclient.errors.UnknownLinkType-class.html
+++ b/docs/epy/apiclient.errors.UnknownLinkType-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.ext-module.html b/docs/epy/apiclient.ext-module.html
index db94ea1..bbd2740 100644
--- a/docs/epy/apiclient.ext-module.html
+++ b/docs/epy/apiclient.ext-module.html
@@ -101,7 +101,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.ext-pysrc.html b/docs/epy/apiclient.ext-pysrc.html
index 35abc2e..58dc832 100644
--- a/docs/epy/apiclient.ext-pysrc.html
+++ b/docs/epy/apiclient.ext-pysrc.html
@@ -84,7 +84,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http-module.html b/docs/epy/apiclient.http-module.html
index c40b0c4..25daaa4 100644
--- a/docs/epy/apiclient.http-module.html
+++ b/docs/epy/apiclient.http-module.html
@@ -391,7 +391,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http-pysrc.html b/docs/epy/apiclient.http-pysrc.html
index 207071d..fc3c5e7 100644
--- a/docs/epy/apiclient.http-pysrc.html
+++ b/docs/epy/apiclient.http-pysrc.html
@@ -413,12 +413,12 @@
 <a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line"><tt class="py-docstring">        media_body=media).execute()</tt> </tt>
 <a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
 <a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseUpload.__init__"></a><div id="MediaIoBaseUpload.__init__-def"><a name="L327"></a><tt class="py-lineno"> 327</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.__init__-toggle" onclick="return toggle('MediaIoBaseUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fh</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-32" class="py-name"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-32', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> </tt>
+<a name="MediaIoBaseUpload.__init__"></a><div id="MediaIoBaseUpload.__init__-def"><a name="L327"></a><tt class="py-lineno"> 327</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.__init__-toggle" onclick="return toggle('MediaIoBaseUpload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">mimetype</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-32" class="py-name"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-32', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">,</tt> </tt>
 <a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line">      <tt class="py-param">resumable</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="MediaIoBaseUpload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.__init__-expanded"><a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
 <a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 <a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"><tt class="py-docstring">      fh: io.Base or file object, The source of the bytes to upload. MUST be</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"><tt class="py-docstring">      fd: io.Base or file object, The source of the bytes to upload. MUST be</tt> </tt>
 <a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line"><tt class="py-docstring">        opened in blocking mode, do not use streams opened in non-blocking mode.</tt> </tt>
 <a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line"><tt class="py-docstring">      mimetype: string, Mime-type of the file. If None then a mime-type will be</tt> </tt>
 <a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line"><tt class="py-docstring">        guessed from the file extension.</tt> </tt>
@@ -427,7 +427,7 @@
 <a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line"><tt class="py-docstring">      resumable: bool, True if this is a resumable upload. False means upload</tt> </tt>
 <a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line"><tt class="py-docstring">        in a single request.</tt> </tt>
 <a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt> <tt class="py-op">=</tt> <tt class="py-name">fh</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
 <a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_mimetype</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="apiclient.http.MediaFileUpload.mimetype
 apiclient.http.MediaInMemoryUpload.mimetype
 apiclient.http.MediaIoBaseUpload.mimetype
@@ -442,8 +442,8 @@
 apiclient.http.MediaUpload.resumable" class="py-name" href="#" onclick="return doclink('link-35', 'resumable', 'link-28');">resumable</a></tt> </tt>
 <a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 <a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">,</tt> <tt class="py-string">'fileno'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line">        <tt class="py-name">fileno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">hasattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">,</tt> <tt class="py-string">'fileno'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line">        <tt class="py-name">fileno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">fileno</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"> </tt>
 <a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">        <tt class="py-comment"># Pipes and such show up as 0 length files.</tt> </tt>
 <a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">        <tt id="link-36" class="py-name" targets="Method apiclient.http.MediaFileUpload.size()=apiclient.http.MediaFileUpload-class.html#size,Method apiclient.http.MediaInMemoryUpload.size()=apiclient.http.MediaInMemoryUpload-class.html#size,Method apiclient.http.MediaIoBaseUpload.size()=apiclient.http.MediaIoBaseUpload-class.html#size,Method apiclient.http.MediaUpload.size()=apiclient.http.MediaUpload-class.html#size"><a title="apiclient.http.MediaFileUpload.size
@@ -501,8 +501,8 @@
 <a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"><tt class="py-docstring">      A string of bytes read. May be shorted than length if EOF was reached</tt> </tt>
 <a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt class="py-docstring">      first.</tt> </tt>
 <a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fh</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-name">begin</tt><tt class="py-op">)</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line"> </tt>
 <a name="MediaIoBaseUpload.to_json"></a><div id="MediaIoBaseUpload.to_json-def"><a name="L403"></a><tt class="py-lineno"> 403</tt> <a class="py-toggle" href="#" id="MediaIoBaseUpload.to_json-toggle" onclick="return toggle('MediaIoBaseUpload.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseUpload-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="MediaIoBaseUpload.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseUpload.to_json-expanded"><a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line">    <tt class="py-docstring">"""This upload type is not serializable."""</tt> </tt>
@@ -631,32 +631,32 @@
 <a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line"><tt class="py-docstring">    print "Download Complete!"</tt> </tt>
 <a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
 <a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line"> </tt>
-<a name="MediaIoBaseDownload.__init__"></a><div id="MediaIoBaseDownload.__init__-def"><a name="L521"></a><tt class="py-lineno"> 521</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload.__init__-toggle" onclick="return toggle('MediaIoBaseDownload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseDownload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fh</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-44" class="py-name"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-44', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="MediaIoBaseDownload.__init__"></a><div id="MediaIoBaseDownload.__init__-def"><a name="L521"></a><tt class="py-lineno"> 521</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload.__init__-toggle" onclick="return toggle('MediaIoBaseDownload.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseDownload-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">fd</tt><tt class="py-op">,</tt> <tt class="py-param">request</tt><tt class="py-op">,</tt> <tt class="py-param">chunksize</tt><tt class="py-op">=</tt><tt id="link-44" class="py-name"><a title="apiclient.http.DEFAULT_CHUNK_SIZE" class="py-name" href="#" onclick="return doclink('link-44', 'DEFAULT_CHUNK_SIZE', 'link-15');">DEFAULT_CHUNK_SIZE</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="MediaIoBaseDownload.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseDownload.__init__-expanded"><a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor.</tt> </tt>
 <a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 <a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"><tt class="py-docstring">      fh: io.Base or file object, The stream in which to write the downloaded</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"><tt class="py-docstring">      fd: io.Base or file object, The stream in which to write the downloaded</tt> </tt>
 <a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line"><tt class="py-docstring">        bytes.</tt> </tt>
 <a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"><tt class="py-docstring">      request: apiclient.http.HttpRequest, the media request to perform in</tt> </tt>
 <a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line"><tt class="py-docstring">        chunks.</tt> </tt>
 <a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line"><tt class="py-docstring">      chunksize: int, File will be downloaded in chunks of this many bytes.</tt> </tt>
 <a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fh_</tt> <tt class="py-op">=</tt> <tt class="py-name">fh</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name" targets="Method apiclient.http.HttpMock.request()=apiclient.http.HttpMock-class.html#request,Method apiclient.http.HttpMockSequence.request()=apiclient.http.HttpMockSequence-class.html#request,Method apiclient.model.BaseModel.request()=apiclient.model.BaseModel-class.html#request,Method apiclient.model.Model.request()=apiclient.model.Model-class.html#request"><a title="apiclient.http.HttpMock.request
+<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt> <tt class="py-op">=</tt> <tt class="py-name">fd</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name" targets="Method apiclient.http.HttpMock.request()=apiclient.http.HttpMock-class.html#request,Method apiclient.http.HttpMockSequence.request()=apiclient.http.HttpMockSequence-class.html#request,Method apiclient.model.BaseModel.request()=apiclient.model.BaseModel-class.html#request,Method apiclient.model.Model.request()=apiclient.model.Model-class.html#request"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-45', 'request', 'link-45');">request</a></tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri_</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-46', 'request', 'link-45');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">uri</tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chunksize_</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="apiclient.http.MediaFileUpload.chunksize
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="apiclient.http.MediaFileUpload.chunksize
 apiclient.http.MediaInMemoryUpload.chunksize
 apiclient.http.MediaIoBaseUpload.chunksize
 apiclient.http.MediaUpload.chunksize" class="py-name" href="#" onclick="return doclink('link-47', 'chunksize', 'link-27');">chunksize</a></tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">progress_</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size_</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">done_</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 </div><a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line"> </tt>
 <a name="MediaIoBaseDownload.next_chunk"></a><div id="MediaIoBaseDownload.next_chunk-def"><a name="L539"></a><tt class="py-lineno"> 539</tt> <a class="py-toggle" href="#" id="MediaIoBaseDownload.next_chunk-toggle" onclick="return toggle('MediaIoBaseDownload.next_chunk');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.http.MediaIoBaseDownload-class.html#next_chunk">next_chunk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="MediaIoBaseDownload.next_chunk-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="MediaIoBaseDownload.next_chunk-expanded"><a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">    <tt class="py-docstring">"""Get the next chunk of the download.</tt> </tt>
@@ -672,10 +672,10 @@
 <a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
 <a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
 <a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">        <tt class="py-string">'range'</tt><tt class="py-op">:</tt> <tt class="py-string">'bytes=%d-%d'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">progress_</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">progress_</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">chunksize_</tt><tt class="py-op">)</tt> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_chunksize</tt><tt class="py-op">)</tt> </tt>
 <a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
 <a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">    <tt id="link-48" class="py-name" targets="Module apiclient.http=apiclient.http-module.html,Method oauth2client.appengine.OAuth2Decorator.http()=oauth2client.appengine.OAuth2Decorator-class.html#http"><a title="apiclient.http
-oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-48', 'http', 'link-48');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">request_</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="apiclient.http
+oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-48', 'http', 'link-48');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_request</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-49', 'http', 'link-48');">http</a></tt> </tt>
 <a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">    <tt id="link-50" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-50', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt class="py-name">follow_redirects</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
@@ -684,28 +684,28 @@
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-51', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
-apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-52', 'request', 'link-45');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri_</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-52', 'request', 'link-45');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
 <a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">301</tt><tt class="py-op">,</tt> <tt class="py-number">302</tt><tt class="py-op">,</tt> <tt class="py-number">303</tt><tt class="py-op">,</tt> <tt class="py-number">307</tt><tt class="py-op">,</tt> <tt class="py-number">308</tt><tt class="py-op">]</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'location'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri_</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'location'</tt><tt class="py-op">]</tt> </tt>
 <a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">        <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-53', 'http', 'link-48');">http</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
-apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-54', 'request', 'link-45');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri_</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-54', 'request', 'link-45');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
 <a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-number">206</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">progress_</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fh_</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">+=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fd</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
 <a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line"> </tt>
 <a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'content-range'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
 <a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">        <tt class="py-name">content_range</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'content-range'</tt><tt class="py-op">]</tt> </tt>
 <a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">        <tt class="py-name">length</tt> <tt class="py-op">=</tt> <tt class="py-name">content_range</tt><tt class="py-op">.</tt><tt class="py-name">rsplit</tt><tt class="py-op">(</tt><tt class="py-string">'/'</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size_</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">length</tt><tt class="py-op">)</tt> </tt>
 <a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line"> </tt>
-<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">progress_</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size_</tt><tt class="py-op">:</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">done_</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-55" class="py-name" targets="Class apiclient.http.MediaDownloadProgress=apiclient.http.MediaDownloadProgress-class.html"><a title="apiclient.http.MediaDownloadProgress" class="py-name" href="#" onclick="return doclink('link-55', 'MediaDownloadProgress', 'link-55');">MediaDownloadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">progress_</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">total_size_</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">done_</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt> <tt class="py-op">==</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt><tt class="py-op">:</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-55" class="py-name" targets="Class apiclient.http.MediaDownloadProgress=apiclient.http.MediaDownloadProgress-class.html"><a title="apiclient.http.MediaDownloadProgress" class="py-name" href="#" onclick="return doclink('link-55', 'MediaDownloadProgress', 'link-55');">MediaDownloadProgress</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_progress</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_total_size</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_done</tt> </tt>
 <a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-56" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-56', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">uri_</tt><tt class="py-op">)</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-56" class="py-name"><a title="apiclient.errors.HttpError" class="py-name" href="#" onclick="return doclink('link-56', 'HttpError', 'link-4');">HttpError</a></tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_uri</tt><tt class="py-op">)</tt> </tt>
 </div></div><a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line"> </tt>
 <a name="HttpRequest"></a><div id="HttpRequest-def"><a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"> </tt>
 <a name="L578"></a><tt class="py-lineno"> 578</tt> <a class="py-toggle" href="#" id="HttpRequest-toggle" onclick="return toggle('HttpRequest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="apiclient.http.HttpRequest-class.html">HttpRequest</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -1905,7 +1905,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.BatchHttpRequest-class.html b/docs/epy/apiclient.http.BatchHttpRequest-class.html
index 7fc6904..e95bb37 100644
--- a/docs/epy/apiclient.http.BatchHttpRequest-class.html
+++ b/docs/epy/apiclient.http.BatchHttpRequest-class.html
@@ -719,7 +719,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpMock-class.html b/docs/epy/apiclient.http.HttpMock-class.html
index 4b63634..911234a 100644
--- a/docs/epy/apiclient.http.HttpMock-class.html
+++ b/docs/epy/apiclient.http.HttpMock-class.html
@@ -242,7 +242,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:09 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpMockSequence-class.html b/docs/epy/apiclient.http.HttpMockSequence-class.html
index c5bff64..d040fe3 100644
--- a/docs/epy/apiclient.http.HttpMockSequence-class.html
+++ b/docs/epy/apiclient.http.HttpMockSequence-class.html
@@ -259,7 +259,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpRequest-class.html b/docs/epy/apiclient.http.HttpRequest-class.html
index dd4c4d5..872cd65 100644
--- a/docs/epy/apiclient.http.HttpRequest-class.html
+++ b/docs/epy/apiclient.http.HttpRequest-class.html
@@ -470,7 +470,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:57 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.HttpRequestMock-class.html b/docs/epy/apiclient.http.HttpRequestMock-class.html
index 3909019..ea2d289 100644
--- a/docs/epy/apiclient.http.HttpRequestMock-class.html
+++ b/docs/epy/apiclient.http.HttpRequestMock-class.html
@@ -271,7 +271,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaDownloadProgress-class.html b/docs/epy/apiclient.http.MediaDownloadProgress-class.html
index 176a2b1..e2e460a 100644
--- a/docs/epy/apiclient.http.MediaDownloadProgress-class.html
+++ b/docs/epy/apiclient.http.MediaDownloadProgress-class.html
@@ -264,7 +264,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaFileUpload-class.html b/docs/epy/apiclient.http.MediaFileUpload-class.html
index e13e572..e35105e 100644
--- a/docs/epy/apiclient.http.MediaFileUpload-class.html
+++ b/docs/epy/apiclient.http.MediaFileUpload-class.html
@@ -584,7 +584,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaInMemoryUpload-class.html b/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
index ad98013..debd5b9 100644
--- a/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
+++ b/docs/epy/apiclient.http.MediaInMemoryUpload-class.html
@@ -576,7 +576,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaIoBaseDownload-class.html b/docs/epy/apiclient.http.MediaIoBaseDownload-class.html
index c5009f8..5b8b01f 100644
--- a/docs/epy/apiclient.http.MediaIoBaseDownload-class.html
+++ b/docs/epy/apiclient.http.MediaIoBaseDownload-class.html
@@ -107,7 +107,7 @@
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseDownload-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
-        <span class="summary-sig-arg">fh</span>,
+        <span class="summary-sig-arg">fd</span>,
         <span class="summary-sig-arg">request</span>,
         <span class="summary-sig-arg">chunksize</span>=<span class="summary-sig-default">524288</span>)</span><br />
       Constructor.</td>
@@ -207,7 +207,7 @@
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
-        <span class="sig-arg">fh</span>,
+        <span class="sig-arg">fd</span>,
         <span class="sig-arg">request</span>,
         <span class="sig-arg">chunksize</span>=<span class="sig-default">524288</span>)</span>
     <br /><em class="fname">(Constructor)</em>
@@ -221,7 +221,7 @@
 Constructor.
 
 Args:
-  fh: io.Base or file object, The stream in which to write the downloaded
+  fd: io.Base or file object, The stream in which to write the downloaded
     bytes.
   request: apiclient.http.HttpRequest, the media request to perform in
     chunks.
@@ -290,7 +290,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaIoBaseUpload-class.html b/docs/epy/apiclient.http.MediaIoBaseUpload-class.html
index ec58c26..e4854dc 100644
--- a/docs/epy/apiclient.http.MediaIoBaseUpload-class.html
+++ b/docs/epy/apiclient.http.MediaIoBaseUpload-class.html
@@ -103,7 +103,7 @@
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td><span class="summary-sig"><a href="apiclient.http.MediaIoBaseUpload-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
-        <span class="summary-sig-arg">fh</span>,
+        <span class="summary-sig-arg">fd</span>,
         <span class="summary-sig-arg">mimetype</span>,
         <span class="summary-sig-arg">chunksize</span>=<span class="summary-sig-default">524288</span>,
         <span class="summary-sig-arg">resumable</span>=<span class="summary-sig-default">False</span>)</span><br />
@@ -319,7 +319,7 @@
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
-        <span class="sig-arg">fh</span>,
+        <span class="sig-arg">fd</span>,
         <span class="sig-arg">mimetype</span>,
         <span class="sig-arg">chunksize</span>=<span class="sig-default">524288</span>,
         <span class="sig-arg">resumable</span>=<span class="sig-default">False</span>)</span>
@@ -334,7 +334,7 @@
 Constructor.
 
 Args:
-  fh: io.Base or file object, The source of the bytes to upload. MUST be
+  fd: io.Base or file object, The source of the bytes to upload. MUST be
     opened in blocking mode, do not use streams opened in non-blocking mode.
   mimetype: string, Mime-type of the file. If None then a mime-type will be
     guessed from the file extension.
@@ -547,7 +547,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaUpload-class.html b/docs/epy/apiclient.http.MediaUpload-class.html
index 5095a3d..57c5e4d 100644
--- a/docs/epy/apiclient.http.MediaUpload-class.html
+++ b/docs/epy/apiclient.http.MediaUpload-class.html
@@ -562,7 +562,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.MediaUploadProgress-class.html b/docs/epy/apiclient.http.MediaUploadProgress-class.html
index 0f1f06a..4ef1c09 100644
--- a/docs/epy/apiclient.http.MediaUploadProgress-class.html
+++ b/docs/epy/apiclient.http.MediaUploadProgress-class.html
@@ -265,7 +265,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.http.RequestMockBuilder-class.html b/docs/epy/apiclient.http.RequestMockBuilder-class.html
index 8d6bf3c..0340f9b 100644
--- a/docs/epy/apiclient.http.RequestMockBuilder-class.html
+++ b/docs/epy/apiclient.http.RequestMockBuilder-class.html
@@ -311,7 +311,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.mimeparse-module.html b/docs/epy/apiclient.mimeparse-module.html
index bb4362e..461d63a 100644
--- a/docs/epy/apiclient.mimeparse-module.html
+++ b/docs/epy/apiclient.mimeparse-module.html
@@ -491,7 +491,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.mimeparse-pysrc.html b/docs/epy/apiclient.mimeparse-pysrc.html
index 0b2f80b..a405eec 100644
--- a/docs/epy/apiclient.mimeparse-pysrc.html
+++ b/docs/epy/apiclient.mimeparse-pysrc.html
@@ -255,7 +255,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:16 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model-module.html b/docs/epy/apiclient.model-module.html
index 8a13bba..f34e837 100644
--- a/docs/epy/apiclient.model-module.html
+++ b/docs/epy/apiclient.model-module.html
@@ -300,7 +300,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model-pysrc.html b/docs/epy/apiclient.model-pysrc.html
index 784d7f0..cb8b220 100644
--- a/docs/epy/apiclient.model-pysrc.html
+++ b/docs/epy/apiclient.model-pysrc.html
@@ -569,7 +569,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:16 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.BaseModel-class.html b/docs/epy/apiclient.model.BaseModel-class.html
index 2593f31..923c1dc 100644
--- a/docs/epy/apiclient.model.BaseModel-class.html
+++ b/docs/epy/apiclient.model.BaseModel-class.html
@@ -535,7 +535,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.JsonModel-class.html b/docs/epy/apiclient.model.JsonModel-class.html
index b79c6d9..1654764 100644
--- a/docs/epy/apiclient.model.JsonModel-class.html
+++ b/docs/epy/apiclient.model.JsonModel-class.html
@@ -417,7 +417,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:58 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.MediaModel-class.html b/docs/epy/apiclient.model.MediaModel-class.html
index 47b956d..a24b4c1 100644
--- a/docs/epy/apiclient.model.MediaModel-class.html
+++ b/docs/epy/apiclient.model.MediaModel-class.html
@@ -322,7 +322,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:10 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.Model-class.html b/docs/epy/apiclient.model.Model-class.html
index c0ee446..b7b9ab0 100644
--- a/docs/epy/apiclient.model.Model-class.html
+++ b/docs/epy/apiclient.model.Model-class.html
@@ -294,7 +294,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.ProtocolBufferModel-class.html b/docs/epy/apiclient.model.ProtocolBufferModel-class.html
index f31dd89..e60b9a7 100644
--- a/docs/epy/apiclient.model.ProtocolBufferModel-class.html
+++ b/docs/epy/apiclient.model.ProtocolBufferModel-class.html
@@ -419,7 +419,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.model.RawModel-class.html b/docs/epy/apiclient.model.RawModel-class.html
index 20cfc2a..07282ee 100644
--- a/docs/epy/apiclient.model.RawModel-class.html
+++ b/docs/epy/apiclient.model.RawModel-class.html
@@ -322,7 +322,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema-module.html b/docs/epy/apiclient.schema-module.html
index 84f949f..86d9845 100644
--- a/docs/epy/apiclient.schema-module.html
+++ b/docs/epy/apiclient.schema-module.html
@@ -186,7 +186,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema-pysrc.html b/docs/epy/apiclient.schema-pysrc.html
index c22bc04..603c915 100644
--- a/docs/epy/apiclient.schema-pysrc.html
+++ b/docs/epy/apiclient.schema-pysrc.html
@@ -308,103 +308,107 @@
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-20', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method apiclient.schema._SchemaToStruct.indent()=apiclient.schema._SchemaToStruct-class.html#indent"><a title="apiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-21', 'indent', 'link-21');">indent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">pname</tt><tt class="py-op">,</tt> <tt class="py-name">pschema</tt> <tt class="py-keyword">in</tt> <tt id="link-22" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-22', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'properties'</tt> <tt class="py-keyword">in</tt> <tt id="link-22" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-22', 'schema', 'link-9');">schema</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pname</tt><tt class="py-op">,</tt> <tt class="py-name">pschema</tt> <tt class="py-keyword">in</tt> <tt id="link-23" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-23', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-23', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Method apiclient.schema._SchemaToStruct.emitBegin()=apiclient.schema._SchemaToStruct-class.html#emitBegin"><a title="apiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-24', 'emitBegin', 'link-24');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s": '</tt> <tt class="py-op">%</tt> <tt class="py-name">pname</tt><tt class="py-op">)</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method apiclient.schema._SchemaToStruct._to_str_impl()=apiclient.schema._SchemaToStruct-class.html#_to_str_impl"><a title="apiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-25', '_to_str_impl', 'link-25');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">pschema</tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method apiclient.schema._SchemaToStruct.undent()=apiclient.schema._SchemaToStruct-class.html#undent"><a title="apiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-26', 'undent', 'link-26');">undent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Method apiclient.schema._SchemaToStruct.emit()=apiclient.schema._SchemaToStruct-class.html#emit"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-27', 'emit', 'link-27');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'},'</tt><tt class="py-op">)</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt id="link-28" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-28', 'schema', 'link-9');">schema</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">      <tt class="py-name">schemaName</tt> <tt class="py-op">=</tt> <tt id="link-29" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-29', 'schema', 'link-9');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">      <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-30', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-24', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'properties'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method apiclient.schema._SchemaToStruct.emitBegin()=apiclient.schema._SchemaToStruct-class.html#emitBegin"><a title="apiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-25', 'emitBegin', 'link-25');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s": '</tt> <tt class="py-op">%</tt> <tt class="py-name">pname</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method apiclient.schema._SchemaToStruct._to_str_impl()=apiclient.schema._SchemaToStruct-class.html#_to_str_impl"><a title="apiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-26', '_to_str_impl', 'link-26');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">pschema</tt><tt class="py-op">)</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">      <tt class="py-keyword">elif</tt> <tt class="py-string">'additionalProperties'</tt> <tt class="py-keyword">in</tt> <tt id="link-27" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-27', 'schema', 'link-9');">schema</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-28', 'emitBegin', 'link-25');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">'"a_key": '</tt><tt class="py-op">)</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="apiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-29', '_to_str_impl', 'link-26');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-30', 'schema', 'link-9');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'additionalProperties'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method apiclient.schema._SchemaToStruct.undent()=apiclient.schema._SchemaToStruct-class.html#undent"><a title="apiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-31', 'undent', 'link-31');">undent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Method apiclient.schema._SchemaToStruct.emit()=apiclient.schema._SchemaToStruct-class.html#emit"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-32', 'emit', 'link-32');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'},'</tt><tt class="py-op">)</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-string">'$ref'</tt> <tt class="py-keyword">in</tt> <tt id="link-33" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-33', 'schema', 'link-9');">schema</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">      <tt class="py-name">schemaName</tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-34', 'schema', 'link-9');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'$ref'</tt><tt class="py-op">]</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">      <tt class="py-name">description</tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-35', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-31', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">      <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt><tt class="py-op">(</tt><tt class="py-name">schemaName</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seen</tt><tt class="py-op">)</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">      <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">splitlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-32', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-33" class="py-name"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-33', 'emit', 'link-27');">emit</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-34', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-36', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">      <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt><tt class="py-op">(</tt><tt class="py-name">schemaName</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">seen</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">      <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">splitlines</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-37', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">description</tt><tt class="py-op">)</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">      <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-38', 'emit', 'link-32');">emit</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'boolean'</tt><tt class="py-op">:</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-39', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-35', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'True or False'</tt><tt class="py-op">)</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-36" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-36', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-37" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-37', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="apiclient.schema.Schemas.get
-oauth2client.appengine.OAuth2Handler.get
-oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-38', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-39', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="apiclient.schema.Schemas.get
-oauth2client.appengine.OAuth2Handler.get
-oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-40', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'A String'</tt><tt class="py-op">)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-41', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s",'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-42', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-40', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'True or False'</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-41', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-42', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-43', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-44', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'string'</tt><tt class="py-op">:</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-44', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-45', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'42'</tt><tt class="py-op">)</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-46', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-47" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-47', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-45', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'A String'</tt><tt class="py-op">)</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-46', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"%s",'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-47" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-47', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-48', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-49', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'integer'</tt><tt class="py-op">:</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-49', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-50', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'3.14'</tt><tt class="py-op">)</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-51', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-52', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-50', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'42'</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-51', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-52', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-53" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-53', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'null'</tt><tt class="py-op">:</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-54', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'None,'</tt><tt class="py-op">,</tt> <tt id="link-55" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-55', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'number'</tt><tt class="py-op">:</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-54', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-56', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'any'</tt><tt class="py-op">:</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-57', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"",'</tt><tt class="py-op">,</tt> <tt id="link-58" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-58', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-55', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'default'</tt><tt class="py-op">,</tt> <tt class="py-string">'3.14'</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-56', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s,'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">value</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-57" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-57', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-59', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'array'</tt><tt class="py-op">:</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-60', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'['</tt><tt class="py-op">,</tt> <tt id="link-61" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-61', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-58', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'null'</tt><tt class="py-op">:</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-59', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'None,'</tt><tt class="py-op">,</tt> <tt id="link-60" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-60', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
-oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-62', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="apiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-63', 'indent', 'link-21');">indent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-64', 'emitBegin', 'link-24');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="apiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-65', '_to_str_impl', 'link-25');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt id="link-66" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-66', 'schema', 'link-9');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'items'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="apiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-67', 'undent', 'link-26');">undent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-68', 'emit', 'link-27');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'],'</tt><tt class="py-op">)</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-69', 'emit', 'link-27');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown type! %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">stype</tt><tt class="py-op">)</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-70', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line"> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> </tt>
-</div><a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"> </tt>
-<a name="_SchemaToStruct.to_str"></a><div id="_SchemaToStruct.to_str-def"><a name="L290"></a><tt class="py-lineno">290</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.to_str-toggle" onclick="return toggle('_SchemaToStruct.to_str');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.schema._SchemaToStruct-class.html#to_str">to_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">from_cache</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_SchemaToStruct.to_str-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.to_str-expanded"><a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-docstring">"""Prototype object based on the schema, in Python code with comments.</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"><tt class="py-docstring">      from_cache: callable(name, seen), Callable that retrieves an object</tt> </tt>
-<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line"><tt class="py-docstring">         prototype for a schema with the given name. Seen is a list of schema</tt> </tt>
-<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-docstring">         names already seen as we recursively descend the schema definition.</tt> </tt>
-<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-docstring">      Prototype object based on the schema, in Python code with comments.</tt> </tt>
-<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring">      The lines of the code will all be properly indented.</tt> </tt>
-<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt> <tt class="py-op">=</tt> <tt class="py-name">from_cache</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="apiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-71', '_to_str_impl', 'link-25');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-72', 'schema', 'link-9');">schema</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-61', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'any'</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-62', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'"",'</tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-63', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.appengine.OAuth2Handler.get
+oauth2client.client.MemoryCache.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-64', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt class="py-name">stype</tt> <tt class="py-op">==</tt> <tt class="py-string">'array'</tt><tt class="py-op">:</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-65', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">'['</tt><tt class="py-op">,</tt> <tt id="link-66" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-66', 'schema', 'link-9');">schema</a></tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="apiclient.schema.Schemas.get
+oauth2client.appengine.OAuth2Handler.get
+oauth2client.client.MemoryCache.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-67', 'get', 'link-3');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'description'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="apiclient.schema._SchemaToStruct.indent" class="py-name" href="#" onclick="return doclink('link-68', 'indent', 'link-21');">indent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitBegin" class="py-name" href="#" onclick="return doclink('link-69', 'emitBegin', 'link-25');">emitBegin</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="apiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-70', '_to_str_impl', 'link-26');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt id="link-71" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-71', 'schema', 'link-9');">schema</a></tt><tt class="py-op">[</tt><tt class="py-string">'items'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="apiclient.schema._SchemaToStruct.undent" class="py-name" href="#" onclick="return doclink('link-72', 'undent', 'link-31');">undent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-73', 'emit', 'link-32');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'],'</tt><tt class="py-op">)</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="apiclient.schema._SchemaToStruct.emit" class="py-name" href="#" onclick="return doclink('link-74', 'emit', 'link-32');">emit</a></tt><tt class="py-op">(</tt><tt class="py-string">'Unknown type! %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">stype</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="apiclient.schema._SchemaToStruct.emitEnd" class="py-name" href="#" onclick="return doclink('link-75', 'emitEnd', 'link-18');">emitEnd</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line"> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">string</tt> </tt>
+</div><a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"> </tt>
+<a name="_SchemaToStruct.to_str"></a><div id="_SchemaToStruct.to_str-def"><a name="L294"></a><tt class="py-lineno">294</tt> <a class="py-toggle" href="#" id="_SchemaToStruct.to_str-toggle" onclick="return toggle('_SchemaToStruct.to_str');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="apiclient.schema._SchemaToStruct-class.html#to_str">to_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">from_cache</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_SchemaToStruct.to_str-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="_SchemaToStruct.to_str-expanded"><a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">    <tt class="py-docstring">"""Prototype object based on the schema, in Python code with comments.</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line"><tt class="py-docstring">      from_cache: callable(name, seen), Callable that retrieves an object</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"><tt class="py-docstring">         prototype for a schema with the given name. Seen is a list of schema</tt> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"><tt class="py-docstring">         names already seen as we recursively descend the schema definition.</tt> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line"><tt class="py-docstring">      Prototype object based on the schema, in Python code with comments.</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"><tt class="py-docstring">      The lines of the code will all be properly indented.</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">from_cache</tt> <tt class="py-op">=</tt> <tt class="py-name">from_cache</tt> </tt>
+<a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="apiclient.schema._SchemaToStruct._to_str_impl" class="py-name" href="#" onclick="return doclink('link-76', '_to_str_impl', 'link-26');">_to_str_impl</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="apiclient.schema" class="py-name" href="#" onclick="return doclink('link-77', 'schema', 'link-9');">schema</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -434,7 +438,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema.Schemas-class.html b/docs/epy/apiclient.schema.Schemas-class.html
index 80665ef..b26d785 100644
--- a/docs/epy/apiclient.schema.Schemas-class.html
+++ b/docs/epy/apiclient.schema.Schemas-class.html
@@ -467,7 +467,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/apiclient.schema._SchemaToStruct-class.html b/docs/epy/apiclient.schema._SchemaToStruct-class.html
index 057a11e..c9c1ace 100644
--- a/docs/epy/apiclient.schema._SchemaToStruct-class.html
+++ b/docs/epy/apiclient.schema._SchemaToStruct-class.html
@@ -492,7 +492,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/class-tree.html b/docs/epy/class-tree.html
index 3616719..855a7f1 100644
--- a/docs/epy/class-tree.html
+++ b/docs/epy/class-tree.html
@@ -275,14 +275,6 @@
     <li> <strong class="uidlink"><a href="oauth2client.client.MemoryCache-class.html">oauth2client.client.MemoryCache</a></strong>:
       <em class="summary">httplib2 Cache implementation which only caches locally.</em>
     </li>
-    <li> <strong class="uidlink">google.appengine.ext.db.Model</strong>:
-      <em class="summary">Model is the superclass of all object entities in the datastore.</em>
-    <ul>
-    <li> <strong class="uidlink"><a href="oauth2client.appengine.CredentialsModel-class.html">oauth2client.appengine.CredentialsModel</a></strong>:
-      <em class="summary">Storage for OAuth 2.0 Credentials</em>
-    </li>
-    </ul>
-    </li>
     <li> <strong class="uidlink"><a href="apiclient.model.Model-class.html">apiclient.model.Model</a></strong>:
       <em class="summary">Model base class.</em>
     <ul>
@@ -307,6 +299,14 @@
     </li>
     </ul>
     </li>
+    <li> <strong class="uidlink">google.appengine.ext.db.Model</strong>:
+      <em class="summary">Model is the superclass of all object entities in the datastore.</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="oauth2client.appengine.CredentialsModel-class.html">oauth2client.appengine.CredentialsModel</a></strong>:
+      <em class="summary">Storage for OAuth 2.0 Credentials</em>
+    </li>
+    </ul>
+    </li>
     <li> <strong class="uidlink"><a href="oauth2client.appengine.OAuth2Decorator-class.html">oauth2client.appengine.OAuth2Decorator</a></strong>:
       <em class="summary">Utility for making OAuth 2.0 easier.</em>
     <ul>
@@ -346,13 +346,13 @@
     <li> <strong class="uidlink"><a href="oauth2client.client.Storage-class.html">oauth2client.client.Storage</a></strong>:
       <em class="summary">Base class for all Storage objects.</em>
     <ul>
-    <li> <strong class="uidlink"><a href="oauth2client.file.Storage-class.html">oauth2client.file.Storage</a></strong>:
-      <em class="summary">Store and retrieve a single credential to and from a file.</em>
-    </li>
     <li> <strong class="uidlink"><a href="oauth2client.django_orm.Storage-class.html">oauth2client.django_orm.Storage</a></strong>:
       <em class="summary">Store and retrieve a single credential to and from
 the datastore.</em>
     </li>
+    <li> <strong class="uidlink"><a href="oauth2client.file.Storage-class.html">oauth2client.file.Storage</a></strong>:
+      <em class="summary">Store and retrieve a single credential to and from a file.</em>
+    </li>
     <li> <strong class="uidlink"><a href="oauth2client.appengine.StorageByKeyName-class.html">oauth2client.appengine.StorageByKeyName</a></strong>:
       <em class="summary">Store and retrieve a single credential to and from
 the App Engine datastore.</em>
@@ -419,7 +419,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html b/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
index cba4883..92c1a36 100644
--- a/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
+++ b/docs/epy/django.db.models.fields.subclassing.SubfieldBase-class.html
@@ -276,7 +276,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/google.appengine.ext.db.PropertiedClass-class.html b/docs/epy/google.appengine.ext.db.PropertiedClass-class.html
index 946d01b..9284b6b 100644
--- a/docs/epy/google.appengine.ext.db.PropertiedClass-class.html
+++ b/docs/epy/google.appengine.ext.db.PropertiedClass-class.html
@@ -294,7 +294,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/help.html b/docs/epy/help.html
index b1aede2..3aded11 100644
--- a/docs/epy/help.html
+++ b/docs/epy/help.html
@@ -240,7 +240,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/identifier-index.html b/docs/epy/identifier-index.html
index 04962fe..c9f9ee4 100644
--- a/docs/epy/identifier-index.html
+++ b/docs/epy/identifier-index.html
@@ -1079,363 +1079,369 @@
 <tr>
 <td width="33%" class="link-index"><a href="apiclient.http.RequestMockBuilder-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.contrib.moderator-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.contrib.moderator-module.html">apiclient.contrib.moderator</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers">_generate_refresh_request_headers()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#_get_reason">_get_reason()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__credits__">__credits__</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.discovery-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_get_credential">_get_credential()</a><br />
+<td width="33%" class="link-index"><a href="apiclient.errors-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_get_storage">_get_storage()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__email__">__email__</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.errors-module.html">apiclient.errors</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#_get_reason">_get_reason()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__getstate__">__getstate__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.ext-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.ext-module.html">apiclient.ext</a>)</span></td>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_get_storage">_get_storage()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.BatchError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.errors.BatchError-class.html">BatchError</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.http-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_header_to_id">_header_to_id()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__getstate__">__getstate__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http-module.html">apiclient.http</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_id_to_header">_id_to_header()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedBodyError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a>)</span></td>
-<td width="33%" class="link-index"><a href="apiclient.model-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.BatchError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.errors.BatchError-class.html">BatchError</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#_json_encode">_json_encode()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedMethodError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#_loadfile">_loadfile()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedBodyError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.errors.UnexpectedBodyError-class.html">UnexpectedBodyError</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.schema-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.schema-module.html">apiclient.schema</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_lock">_lock()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.errors.UnexpectedMethodError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.errors.UnexpectedMethodError-class.html">UnexpectedMethodError</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client-module.html">oauth2client</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_read">_locked_json_read()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpMock-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpMock-class.html">HttpMock</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.anyjson-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.anyjson-module.html">oauth2client.anyjson</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_locked_json_write">_locked_json_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpMockSequence-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpMockSequence-class.html">HttpMockSequence</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpMock-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpMock-class.html">HttpMock</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.appengine-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.appengine-module.html">oauth2client.appengine</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#_log_request">_log_request()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpMockSequence-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpMockSequence-class.html">HttpMockSequence</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#_log_response">_log_response()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.HttpRequestMock-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpRequestMock-class.html">HttpRequestMock</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_media_size_to_long">_media_size_to_long()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaDownloadProgress-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaDownloadProgress-class.html">MediaDownloadProgress</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.HttpRequestMock-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.HttpRequestMock-class.html">HttpRequestMock</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html">_MultiStore</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaDownloadProgress-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaDownloadProgress-class.html">MediaDownloadProgress</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.django_orm-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.django_orm-module.html">oauth2client.django_orm</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#_multistores">_multistores</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaFileUpload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaFileUpload-class.html">MediaFileUpload</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.file-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.file-module.html">oauth2client.file</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#_multistores_lock">_multistores_lock</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseDownload-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaIoBaseDownload-class.html">MediaIoBaseDownload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaInMemoryUpload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaInMemoryUpload-class.html">MediaInMemoryUpload</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.locked_file-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_new_id">_new_id()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseDownload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaIoBaseDownload-class.html">MediaIoBaseDownload</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file-module.html">oauth2client.multistore_file</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html">_Opener</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaIoBaseUpload-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaIoBaseUpload-class.html">MediaIoBaseUpload</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.tools-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.tools-module.html">oauth2client.tools</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client-module.html#_parse_exchange_token_response">_parse_exchange_token_response()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.http.RequestMockBuilder-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.MediaUploadProgress-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.MediaUploadProgress-class.html">MediaUploadProgress</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.errors.BatchError-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.errors.BatchError-class.html">BatchError</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.locked_file._PosixOpener-class.html#_posix_lockfile">_posix_lockfile()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.locked_file._PosixOpener-class.html" onclick="show_private();">_PosixOpener</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.http.RequestMockBuilder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.http.RequestMockBuilder-class.html">RequestMockBuilder</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.errors.HttpError-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.errors.HttpError-class.html">HttpError</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.locked_file._PosixOpener-class.html">_PosixOpener</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model.JsonModel-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.model.JsonModel-class.html">JsonModel</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__setstate__">__setstate__()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#_prettyPrintByName">_prettyPrintByName()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.model.ProtocolBufferModel-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.model.ProtocolBufferModel-class.html">ProtocolBufferModel</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.model-module.html#_abstract">_abstract()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.model-module.html">apiclient.model</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#_prettyPrintSchema">_prettyPrintSchema()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.schema.Schemas-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.schema.Schemas-class.html">Schemas</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client-module.html#_abstract">_abstract()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.HttpRequest-class.html#_process_response">_process_response()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.HttpRequest-class.html">HttpRequest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_add_query_parameter">_add_query_parameter()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html#_properties">_properties</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.appengine.CredentialsModel-class.html#_all_properties">_all_properties</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.appengine.CredentialsModel-class.html">CredentialsModel</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.appengine.AppAssertionCredentials-class.html#_refresh">_refresh()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.appengine.AppAssertionCredentials-class.html">AppAssertionCredentials</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html">OAuth2DecoratorFromClientSecrets</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.model.BaseModel-class.html#_build_query">_build_query()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.model.BaseModel-class.html">BaseModel</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html#_refresh">_refresh()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.appengine.StorageByKeyName-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.StorageByKeyName-class.html">StorageByKeyName</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html">OAuth2DecoratorFromClientSecrets</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client-module.html#_cached_http">_cached_http</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_refresh">_refresh()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.appengine.StorageByKeyName-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.appengine.StorageByKeyName-class.html">StorageByKeyName</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_cast">_cast()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_refresh_and_apply_credentials">_refresh_and_apply_credentials()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.AccessTokenCredentials-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#_create_file_if_needed">_create_file_if_needed()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_refresh_data_cache">_refresh_data_cache()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.MemoryCache-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.MemoryCache-class.html">MemoryCache</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_create_file_if_needed">_create_file_if_needed()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html">_SchemaToStruct</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.schema-module.html">apiclient.schema</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.MemoryCache-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.MemoryCache-class.html">MemoryCache</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.discovery-module.html#_createResource">_createResource()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.discovery-module.html">apiclient.discovery</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_serialize_request">_serialize_request()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_decode_credential_from_json">_decode_credential_from_json()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html">_Storage</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2WebServerFlow-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_delete_credential">_delete_credential()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.MediaUpload-class.html#_to_json">_to_json()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.MediaUpload-class.html">MediaUpload</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.crypt.Signer-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.crypt.Signer-class.html">Signer</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_deserialize_response">_deserialize_response()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.Credentials-class.html#_to_json">_to_json()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.Credentials-class.html">Credentials</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.crypt.Verifier-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.crypt.Verifier-class.html">Verifier</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.crypt.Signer-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.crypt.Signer-class.html">Signer</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.appengine.OAuth2Decorator-class.html#_display_error_message">_display_error_message()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.appengine.OAuth2Decorator-class.html">OAuth2Decorator</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.schema._SchemaToStruct-class.html#_to_str_impl">_to_str_impl()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.schema._SchemaToStruct-class.html" onclick="show_private();">_SchemaToStruct</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.django_orm.Storage-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.django_orm.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.crypt.Verifier-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.crypt.Verifier-class.html">Verifier</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request">_do_refresh_request()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_unlock">_unlock()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.django_orm.Storage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.django_orm.Storage-class.html">Storage</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.http.BatchHttpRequest-class.html#_execute">_execute()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.http.BatchHttpRequest-class.html">BatchHttpRequest</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_update_credential">_update_credential()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.file.Storage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.file.Storage-class.html">Storage</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client-module.html#_extract_id_token">_extract_id_token()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential">_updateFromCredential()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file.LockedFile-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.locked_file.LockedFile-class.html">LockedFile</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.locked_file._FcntlOpener-class.html">_FcntlOpener</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client-module.html#_urlsafe_b64decode">_urlsafe_b64decode()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client-module.html">oauth2client.client</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.locked_file._Opener-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.locked_file._Opener-class.html" onclick="show_private();">_Opener</a>)</span></td>
 <td width="33%" class="link-index"><a href="apiclient.mimeparse-module.html#_filter_blank">_filter_blank()</a><br />
 <span class="index-where">(in&nbsp;<a href="apiclient.mimeparse-module.html">apiclient.mimeparse</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#_urlsafe_b64decode">_urlsafe_b64decode()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore._Storage-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore._Storage-class.html" onclick="show_private();">_Storage</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#_generate_assertion">_generate_assertion()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.crypt-module.html#_urlsafe_b64encode">_urlsafe_b64encode()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.crypt-module.html">oauth2client.crypt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient-module.html">apiclient</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion">_generate_assertion()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.clientsecrets-module.html#_validate_clientsecrets">_validate_clientsecrets()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.clientsecrets-module.html">oauth2client.clientsecrets</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.contrib-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.contrib-module.html">apiclient.contrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient-module.html">apiclient</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.locked_file-module.html#_Win32Opener">_Win32Opener</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.locked_file-module.html">oauth2client.locked_file</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="apiclient.contrib.latitude-module.html#__package__">__package__</a><br />
-<span class="index-where">(in&nbsp;<a href="apiclient.contrib.latitude-module.html">apiclient.contrib.latitude</a>)</span></td>
+<td width="33%" class="link-index"><a href="apiclient.contrib-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.contrib-module.html">apiclient.contrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
 <td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_write">_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
 </tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.contrib.latitude-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.contrib.latitude-module.html">apiclient.contrib.latitude</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers">_generate_refresh_request_headers()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.client.OAuth2Credentials-class.html">OAuth2Credentials</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="apiclient.contrib.moderator-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="apiclient.contrib.moderator-module.html">apiclient.contrib.moderator</a>)</span></td>
+<td width="33%" class="link-index"><a href="oauth2client.multistore_file._MultiStore-class.html#_get_credential">_get_credential()</a><br />
+<span class="index-where">(in&nbsp;<a href="oauth2client.multistore_file._MultiStore-class.html" onclick="show_private();">_MultiStore</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
 </table>
 </td></tr>
 </table>
@@ -1462,7 +1468,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/mimetools.Message-class.html b/docs/epy/mimetools.Message-class.html
index 55a05d8..dfcdfec 100644
--- a/docs/epy/mimetools.Message-class.html
+++ b/docs/epy/mimetools.Message-class.html
@@ -355,7 +355,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/module-tree.html b/docs/epy/module-tree.html
index e285cda..b30f5b5 100644
--- a/docs/epy/module-tree.html
+++ b/docs/epy/module-tree.html
@@ -107,7 +107,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:55 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client-module.html b/docs/epy/oauth2client-module.html
index 433ec89..6bb51e3 100644
--- a/docs/epy/oauth2client-module.html
+++ b/docs/epy/oauth2client-module.html
@@ -137,7 +137,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client-pysrc.html b/docs/epy/oauth2client-pysrc.html
index a03c814..cfbb6e3 100644
--- a/docs/epy/oauth2client-pysrc.html
+++ b/docs/epy/oauth2client-pysrc.html
@@ -83,7 +83,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.anyjson-module.html b/docs/epy/oauth2client.anyjson-module.html
index 4dc8ad1..1d77863 100644
--- a/docs/epy/oauth2client.anyjson-module.html
+++ b/docs/epy/oauth2client.anyjson-module.html
@@ -113,7 +113,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.anyjson-pysrc.html b/docs/epy/oauth2client.anyjson-pysrc.html
index 50cef74..d062de8 100644
--- a/docs/epy/oauth2client.anyjson-pysrc.html
+++ b/docs/epy/oauth2client.anyjson-pysrc.html
@@ -115,7 +115,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:16 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine-module.html b/docs/epy/oauth2client.appengine-module.html
index 2f4ef1b..870e9ca 100644
--- a/docs/epy/oauth2client.appengine-module.html
+++ b/docs/epy/oauth2client.appengine-module.html
@@ -180,7 +180,8 @@
         <tr>
           <td><span class="summary-sig"><a href="oauth2client.appengine-module.html#oauth2decorator_from_clientsecrets" class="summary-sig-name">oauth2decorator_from_clientsecrets</a>(<span class="summary-sig-arg">filename</span>,
         <span class="summary-sig-arg">scope</span>,
-        <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>)</span><br />
+        <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
       Creates an OAuth2Decorator populated from a clientsecrets file.</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="oauth2client.appengine-pysrc.html#oauth2decorator_from_clientsecrets">source&nbsp;code</a></span>
@@ -281,7 +282,8 @@
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">oauth2decorator_from_clientsecrets</span>(<span class="sig-arg">filename</span>,
         <span class="sig-arg">scope</span>,
-        <span class="sig-arg">message</span>=<span class="sig-default">None</span>)</span>
+        <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="oauth2client.appengine-pysrc.html#oauth2decorator_from_clientsecrets">source&nbsp;code</a></span>&nbsp;
@@ -299,6 +301,8 @@
     clientsecrets file is missing or invalid. The message may contain HTML and
     will be presented on the web interface for any method that uses the
     decorator.
+  cache: An optional cache service client that implements get() and set() 
+    methods. See clientsecrets.loadfile() for details.
 
 Returns: An OAuth2Decorator
 
@@ -368,7 +372,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine-pysrc.html b/docs/epy/oauth2client.appengine-pysrc.html
index b0fb0e0..039d605 100644
--- a/docs/epy/oauth2client.appengine-pysrc.html
+++ b/docs/epy/oauth2client.appengine-pysrc.html
@@ -617,7 +617,7 @@
 <a name="L446"></a><tt class="py-lineno">446</tt>  <tt class="py-line"><tt class="py-docstring">        # in API calls</tt> </tt>
 <a name="L447"></a><tt class="py-lineno">447</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
 <a name="L448"></a><tt class="py-lineno">448</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2DecoratorFromClientSecrets.__init__"></a><div id="OAuth2DecoratorFromClientSecrets.__init__-def"><a name="L449"></a><tt class="py-lineno">449</tt> <a class="py-toggle" href="#" id="OAuth2DecoratorFromClientSecrets.__init__-toggle" onclick="return toggle('OAuth2DecoratorFromClientSecrets.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="OAuth2DecoratorFromClientSecrets.__init__"></a><div id="OAuth2DecoratorFromClientSecrets.__init__-def"><a name="L449"></a><tt class="py-lineno">449</tt> <a class="py-toggle" href="#" id="OAuth2DecoratorFromClientSecrets.__init__-toggle" onclick="return toggle('OAuth2DecoratorFromClientSecrets.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">cache</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="OAuth2DecoratorFromClientSecrets.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2DecoratorFromClientSecrets.__init__-expanded"><a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor</tt> </tt>
 <a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 <a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
@@ -628,15 +628,17 @@
 <a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line"><tt class="py-docstring">        clientsecrets file is missing or invalid. The message may contain HTML and</tt> </tt>
 <a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line"><tt class="py-docstring">        will be presented on the web interface for any method that uses the</tt> </tt>
 <a name="L459"></a><tt class="py-lineno">459</tt>  <tt class="py-line"><tt class="py-docstring">        decorator.</tt> </tt>
-<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line">      <tt class="py-name">client_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-102', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Function oauth2client.clientsecrets.loadfile()=oauth2client.clientsecrets-module.html#loadfile"><a title="oauth2client.clientsecrets.loadfile" class="py-name" href="#" onclick="return doclink('link-103', 'loadfile', 'link-103');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-104" class="py-name" targets="Method oauth2client.locked_file.LockedFile.filename()=oauth2client.locked_file.LockedFile-class.html#filename,Method oauth2client.locked_file._Opener.filename()=oauth2client.locked_file._Opener-class.html#filename"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-104', 'filename', 'link-104');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-105" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-105', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_WEB=oauth2client.clientsecrets-module.html#TYPE_WEB"><a title="oauth2client.clientsecrets.TYPE_WEB" class="py-name" href="#" onclick="return doclink('link-106', 'TYPE_WEB', 'link-106');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-107" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-107', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_INSTALLED=oauth2client.clientsecrets-module.html#TYPE_INSTALLED"><a title="oauth2client.clientsecrets.TYPE_INSTALLED" class="py-name" href="#" onclick="return doclink('link-108', 'TYPE_INSTALLED', 'link-108');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-109" class="py-name" targets="Class oauth2client.appengine.InvalidClientSecretsError=oauth2client.appengine.InvalidClientSecretsError-class.html,Class oauth2client.clientsecrets.InvalidClientSecretsError=oauth2client.clientsecrets.InvalidClientSecretsError-class.html"><a title="oauth2client.appengine.InvalidClientSecretsError
+<a name="L460"></a><tt class="py-lineno">460</tt>  <tt class="py-line"><tt class="py-docstring">      cache: An optional cache service client that implements get() and set() </tt> </tt>
+<a name="L461"></a><tt class="py-lineno">461</tt>  <tt class="py-line"><tt class="py-docstring">        methods. See clientsecrets.loadfile() for details.</tt> </tt>
+<a name="L462"></a><tt class="py-lineno">462</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L463"></a><tt class="py-lineno">463</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L464"></a><tt class="py-lineno">464</tt>  <tt class="py-line">      <tt class="py-name">client_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-102', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-103" class="py-name" targets="Function oauth2client.clientsecrets.loadfile()=oauth2client.clientsecrets-module.html#loadfile"><a title="oauth2client.clientsecrets.loadfile" class="py-name" href="#" onclick="return doclink('link-103', 'loadfile', 'link-103');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-104" class="py-name" targets="Method oauth2client.locked_file.LockedFile.filename()=oauth2client.locked_file.LockedFile-class.html#filename,Method oauth2client.locked_file._Opener.filename()=oauth2client.locked_file._Opener-class.html#filename"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-104', 'filename', 'link-104');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
+<a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-105" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-105', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_WEB=oauth2client.clientsecrets-module.html#TYPE_WEB"><a title="oauth2client.clientsecrets.TYPE_WEB" class="py-name" href="#" onclick="return doclink('link-106', 'TYPE_WEB', 'link-106');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-107" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-107', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-108" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_INSTALLED=oauth2client.clientsecrets-module.html#TYPE_INSTALLED"><a title="oauth2client.clientsecrets.TYPE_INSTALLED" class="py-name" href="#" onclick="return doclink('link-108', 'TYPE_INSTALLED', 'link-108');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-109" class="py-name" targets="Class oauth2client.appengine.InvalidClientSecretsError=oauth2client.appengine.InvalidClientSecretsError-class.html,Class oauth2client.clientsecrets.InvalidClientSecretsError=oauth2client.clientsecrets.InvalidClientSecretsError-class.html"><a title="oauth2client.appengine.InvalidClientSecretsError
 oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-109', 'InvalidClientSecretsError', 'link-109');">InvalidClientSecretsError</a></tt><tt class="py-op">(</tt><tt class="py-string">'OAuth2Decorator doesn\'t support this OAuth 2.0 flow.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L465"></a><tt class="py-lineno">465</tt>  <tt class="py-line">      <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-110" class="py-name" targets="Class oauth2client.appengine.OAuth2DecoratorFromClientSecrets=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-110', 'OAuth2DecoratorFromClientSecrets', 'link-110');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L466"></a><tt class="py-lineno">466</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="apiclient.errors.BatchError.__init__
+<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">      <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-110" class="py-name" targets="Class oauth2client.appengine.OAuth2DecoratorFromClientSecrets=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-110', 'OAuth2DecoratorFromClientSecrets', 'link-110');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="apiclient.errors.BatchError.__init__
 apiclient.errors.HttpError.__init__
 apiclient.errors.UnexpectedBodyError.__init__
 apiclient.errors.UnexpectedMethodError.__init__
@@ -674,99 +676,103 @@
 oauth2client.locked_file._Opener.__init__
 oauth2client.multistore_file._MultiStore._Storage.__init__
 oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-111', '__init__', 'link-28');">__init__</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L467"></a><tt class="py-lineno">467</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_id'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L468"></a><tt class="py-lineno">468</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_secret'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">                <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'auth_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">                <tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
-<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt id="link-112" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-112', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
+<a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_id'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_secret'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L471"></a><tt class="py-lineno">471</tt>  <tt class="py-line">                <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'auth_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line">                <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line">                <tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
+<a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt id="link-112" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-112', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="oauth2client.appengine.InvalidClientSecretsError
 oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-113', 'InvalidClientSecretsError', 'link-109');">InvalidClientSecretsError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">message</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_message</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
-<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_message</tt> <tt class="py-op">=</tt> <tt class="py-string">"Please configure your application for OAuth 2.0"</tt> </tt>
-</div></div><a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line"> </tt>
-<a name="oauth2decorator_from_clientsecrets"></a><div id="oauth2decorator_from_clientsecrets-def"><a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line"> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt> <a class="py-toggle" href="#" id="oauth2decorator_from_clientsecrets-toggle" onclick="return toggle('oauth2decorator_from_clientsecrets');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine-module.html#oauth2decorator_from_clientsecrets">oauth2decorator_from_clientsecrets</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="oauth2decorator_from_clientsecrets-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="oauth2decorator_from_clientsecrets-expanded"><a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates an OAuth2Decorator populated from a clientsecrets file.</tt> </tt>
-<a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line"><tt class="py-docstring">    filename: string, File name of client secrets.</tt> </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line"><tt class="py-docstring">      requested.</tt> </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line"><tt class="py-docstring">    message: string, A friendly string to display to the user if the</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line"><tt class="py-docstring">      clientsecrets file is missing or invalid. The message may contain HTML and</tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"><tt class="py-docstring">      will be presented on the web interface for any method that uses the</tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line"><tt class="py-docstring">      decorator.</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line"><tt class="py-docstring">  Returns: An OAuth2Decorator</tt> </tt>
-<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-114" class="py-name"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-114', 'OAuth2DecoratorFromClientSecrets', 'link-110');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-115', 'filename', 'link-104');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Handler"></a><div id="OAuth2Handler-def"><a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line"> </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt> <a class="py-toggle" href="#" id="OAuth2Handler-toggle" onclick="return toggle('OAuth2Handler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Handler-class.html">OAuth2Handler</a><tt class="py-op">(</tt><tt class="py-base-class">webapp</tt><tt class="py-op">.</tt><tt class="py-base-class">RequestHandler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Handler-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="OAuth2Handler-expanded"><a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">  <tt class="py-docstring">"""Handler for the redirect_uri of the OAuth 2.0 dance."""</tt> </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line"> </tt>
-<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">login_required</tt> </tt>
-<a name="OAuth2Handler.get"></a><div id="OAuth2Handler.get-def"><a name="L503"></a><tt class="py-lineno">503</tt> <a class="py-toggle" href="#" id="OAuth2Handler.get-toggle" onclick="return toggle('OAuth2Handler.get');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Handler-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Handler.get-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Handler.get-expanded"><a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line">    <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_in_error</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">message</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_message</tt> <tt class="py-op">=</tt> <tt class="py-name">message</tt> </tt>
+<a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_message</tt> <tt class="py-op">=</tt> <tt class="py-string">"Please configure your application for OAuth 2.0"</tt> </tt>
+</div></div><a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line"> </tt>
+<a name="oauth2decorator_from_clientsecrets"></a><div id="oauth2decorator_from_clientsecrets-def"><a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line"> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt> <a class="py-toggle" href="#" id="oauth2decorator_from_clientsecrets-toggle" onclick="return toggle('oauth2decorator_from_clientsecrets');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine-module.html#oauth2decorator_from_clientsecrets">oauth2decorator_from_clientsecrets</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt>  </tt>
+<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line">                                       <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">cache</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="oauth2decorator_from_clientsecrets-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="oauth2decorator_from_clientsecrets-expanded"><a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">  <tt class="py-docstring">"""Creates an OAuth2Decorator populated from a clientsecrets file.</tt> </tt>
+<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line"><tt class="py-docstring">    filename: string, File name of client secrets.</tt> </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line"><tt class="py-docstring">      requested.</tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line"><tt class="py-docstring">    message: string, A friendly string to display to the user if the</tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line"><tt class="py-docstring">      clientsecrets file is missing or invalid. The message may contain HTML and</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line"><tt class="py-docstring">      will be presented on the web interface for any method that uses the</tt> </tt>
+<a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line"><tt class="py-docstring">      decorator.</tt> </tt>
+<a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line"><tt class="py-docstring">    cache: An optional cache service client that implements get() and set() </tt> </tt>
+<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line"><tt class="py-docstring">      methods. See clientsecrets.loadfile() for details.</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line"><tt class="py-docstring">  Returns: An OAuth2Decorator</tt> </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-114" class="py-name"><a title="oauth2client.appengine.OAuth2DecoratorFromClientSecrets" class="py-name" href="#" onclick="return doclink('link-114', 'OAuth2DecoratorFromClientSecrets', 'link-110');">OAuth2DecoratorFromClientSecrets</a></tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-115', 'filename', 'link-104');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt>  </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line">    <tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Handler"></a><div id="OAuth2Handler-def"><a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line"> </tt>
+<a name="L505"></a><tt class="py-lineno">505</tt> <a class="py-toggle" href="#" id="OAuth2Handler-toggle" onclick="return toggle('OAuth2Handler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Handler-class.html">OAuth2Handler</a><tt class="py-op">(</tt><tt class="py-base-class">webapp</tt><tt class="py-op">.</tt><tt class="py-base-class">RequestHandler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Handler-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="OAuth2Handler-expanded"><a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line">  <tt class="py-docstring">"""Handler for the redirect_uri of the OAuth 2.0 dance."""</tt> </tt>
+<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line"> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">login_required</tt> </tt>
+<a name="OAuth2Handler.get"></a><div id="OAuth2Handler.get-def"><a name="L509"></a><tt class="py-lineno">509</tt> <a class="py-toggle" href="#" id="OAuth2Handler.get-toggle" onclick="return toggle('OAuth2Handler.get');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine.OAuth2Handler-class.html#get">get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Handler.get-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="OAuth2Handler.get-expanded"><a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">    <tt class="py-name">error</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-116', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-117', 'get', 'link-56');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error'</tt><tt class="py-op">)</tt> </tt>
-<a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
-<a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line">      <tt class="py-name">errormsg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">error</tt><tt class="py-op">:</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">      <tt class="py-name">errormsg</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-118', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-119', 'get', 'link-56');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'error_description'</tt><tt class="py-op">,</tt> <tt class="py-name">error</tt><tt class="py-op">)</tt> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="apiclient.model.BaseModel.response
+<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="apiclient.model.BaseModel.response
 apiclient.model.Model.response" class="py-name" href="#" onclick="return doclink('link-120', 'response', 'link-73');">response</a></tt><tt class="py-op">.</tt><tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">          <tt class="py-string">'The authorization request failed: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">errormsg</tt><tt class="py-op">)</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">      <tt class="py-name">user</tt> <tt class="py-op">=</tt> <tt class="py-name">users</tt><tt class="py-op">.</tt><tt class="py-name">get_current_user</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">      <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-121', 'loads', 'link-29');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line">          <tt class="py-string">'The authorization request failed: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">errormsg</tt><tt class="py-op">)</tt> </tt>
+<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">      <tt class="py-name">user</tt> <tt class="py-op">=</tt> <tt class="py-name">users</tt><tt class="py-op">.</tt><tt class="py-name">get_current_user</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line">      <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-121', 'loads', 'link-29');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">memcache</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-122', 'get', 'link-56');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">user</tt><tt class="py-op">.</tt><tt class="py-name">user_id</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line">                                       <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-123" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-123', 'OAUTH2CLIENT_NAMESPACE', 'link-26');">OAUTH2CLIENT_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line">      <tt class="py-comment"># This code should be ammended with application specific error</tt> </tt>
-<a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line">      <tt class="py-comment"># handling. The following cases should be considered:</tt> </tt>
-<a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line">      <tt class="py-comment"># 1. What if the flow doesn't exist in memcache? Or is corrupt?</tt> </tt>
-<a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">      <tt class="py-comment"># 2. What if the step2_exchange fails?</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">flow</tt><tt class="py-op">:</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line">        <tt id="link-124" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-124', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-125', 'step2_exchange', 'link-125');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line">                                       <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt id="link-123" class="py-name"><a title="oauth2client.appengine.OAUTH2CLIENT_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-123', 'OAUTH2CLIENT_NAMESPACE', 'link-26');">OAUTH2CLIENT_NAMESPACE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line">      <tt class="py-comment"># This code should be ammended with application specific error</tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line">      <tt class="py-comment"># handling. The following cases should be considered:</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">      <tt class="py-comment"># 1. What if the flow doesn't exist in memcache? Or is corrupt?</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line">      <tt class="py-comment"># 2. What if the step2_exchange fails?</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">flow</tt><tt class="py-op">:</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line">        <tt id="link-124" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-124', 'credentials', 'link-46');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-125', 'step2_exchange', 'link-125');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-126" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-126', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line">        <tt id="link-127" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-127', 'StorageByKeyName', 'link-80');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line">            <tt id="link-128" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-128', 'CredentialsModel', 'link-81');">CredentialsModel</a></tt><tt class="py-op">,</tt> <tt class="py-name">user</tt><tt class="py-op">.</tt><tt class="py-name">user_id</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-129', 'put', 'link-63');">put</a></tt><tt class="py-op">(</tt><tt id="link-130" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-130', 'credentials', 'link-46');">credentials</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="apiclient.http.HttpMock.request
+<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line">        <tt id="link-127" class="py-name"><a title="oauth2client.appengine.StorageByKeyName" class="py-name" href="#" onclick="return doclink('link-127', 'StorageByKeyName', 'link-80');">StorageByKeyName</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line">            <tt id="link-128" class="py-name"><a title="oauth2client.appengine.CredentialsModel" class="py-name" href="#" onclick="return doclink('link-128', 'CredentialsModel', 'link-81');">CredentialsModel</a></tt><tt class="py-op">,</tt> <tt class="py-name">user</tt><tt class="py-op">.</tt><tt class="py-name">user_id</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="oauth2client.client.Storage.put" class="py-name" href="#" onclick="return doclink('link-129', 'put', 'link-63');">put</a></tt><tt class="py-op">(</tt><tt id="link-130" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-130', 'credentials', 'link-46');">credentials</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-131', 'request', 'link-77');">request</a></tt><tt class="py-op">.</tt><tt id="link-132" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-132', 'get', 'link-56');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'state'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line">        <tt class="py-comment"># TODO Add error handling here.</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
-</div></div><a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line"> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line"> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line"><tt id="link-133" class="py-name" targets="Variable oauth2client.appengine.application=oauth2client.appengine-module.html#application"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-133', 'application', 'link-133');">application</a></tt> <tt class="py-op">=</tt> <tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt class="py-name">WSGIApplication</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'/oauth2callback'</tt><tt class="py-op">,</tt> <tt id="link-134" class="py-name" targets="Class oauth2client.appengine.OAuth2Handler=oauth2client.appengine.OAuth2Handler-class.html"><a title="oauth2client.appengine.OAuth2Handler" class="py-name" href="#" onclick="return doclink('link-134', 'OAuth2Handler', 'link-134');">OAuth2Handler</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="main"></a><div id="main-def"><a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line"> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line"> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt> <a class="py-toggle" href="#" id="main-toggle" onclick="return toggle('main');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine-module.html#main">main</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="main-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="main-expanded"><a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">  <tt class="py-name">run_wsgi_app</tt><tt class="py-op">(</tt><tt id="link-135" class="py-name"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-135', 'application', 'link-133');">application</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line">        <tt class="py-comment"># TODO Add error handling here.</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line"> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line"> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line"><tt id="link-133" class="py-name" targets="Variable oauth2client.appengine.application=oauth2client.appengine-module.html#application"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-133', 'application', 'link-133');">application</a></tt> <tt class="py-op">=</tt> <tt class="py-name">webapp</tt><tt class="py-op">.</tt><tt class="py-name">WSGIApplication</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'/oauth2callback'</tt><tt class="py-op">,</tt> <tt id="link-134" class="py-name" targets="Class oauth2client.appengine.OAuth2Handler=oauth2client.appengine.OAuth2Handler-class.html"><a title="oauth2client.appengine.OAuth2Handler" class="py-name" href="#" onclick="return doclink('link-134', 'OAuth2Handler', 'link-134');">OAuth2Handler</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="main"></a><div id="main-def"><a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line"> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line"> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt> <a class="py-toggle" href="#" id="main-toggle" onclick="return toggle('main');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.appengine-module.html#main">main</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="main-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="main-expanded"><a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">  <tt class="py-name">run_wsgi_app</tt><tt class="py-op">(</tt><tt id="link-135" class="py-name"><a title="oauth2client.appengine.application" class="py-name" href="#" onclick="return doclink('link-135', 'application', 'link-133');">application</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -796,7 +802,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html b/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
index 3b54ce1..72c99fc 100644
--- a/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
+++ b/docs/epy/oauth2client.appengine.AppAssertionCredentials-class.html
@@ -414,7 +414,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.CredentialsModel-class.html b/docs/epy/oauth2client.appengine.CredentialsModel-class.html
index d6732d7..e07b2b4 100644
--- a/docs/epy/oauth2client.appengine.CredentialsModel-class.html
+++ b/docs/epy/oauth2client.appengine.CredentialsModel-class.html
@@ -248,7 +248,7 @@
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="oauth2client.appengine.CredentialsModel-class.html#_properties" class="summary-name" onclick="show_private();">_properties</a> = <code title="{'credentials': &lt;oauth2client.appengine.CredentialsProperty object at \
-0x1de2990&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">credentials</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;oauth2client.appengine.Credenti<code class="variable-ellipsis">...</code></code>
+0x3207d10&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">credentials</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;oauth2client.appengine.Credenti<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
   <tr>
@@ -315,7 +315,7 @@
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
 <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">credentials</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;oauth2client.appengine.CredentialsProperty object at <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-0x1de2990&gt;<code class="variable-group">}</code>
+0x3207d10&gt;<code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -345,7 +345,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:59 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.CredentialsProperty-class.html b/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
index 949c27a..b964f01 100644
--- a/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
+++ b/docs/epy/oauth2client.appengine.CredentialsProperty-class.html
@@ -418,7 +418,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.FlowProperty-class.html b/docs/epy/oauth2client.appengine.FlowProperty-class.html
index 288f5ed..5e87d75 100644
--- a/docs/epy/oauth2client.appengine.FlowProperty-class.html
+++ b/docs/epy/oauth2client.appengine.FlowProperty-class.html
@@ -473,7 +473,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html b/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
index 51c671f..129c215 100644
--- a/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
+++ b/docs/epy/oauth2client.appengine.InvalidClientSecretsError-class.html
@@ -166,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:11 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html b/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
index e7880a6..341500e 100644
--- a/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2Decorator-class.html
@@ -508,7 +508,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html b/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html
index ef040b5..b8671ac 100644
--- a/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html
@@ -112,7 +112,8 @@
           <td><span class="summary-sig"><a href="oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">filename</span>,
         <span class="summary-sig-arg">scope</span>,
-        <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>)</span><br />
+        <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
       Constructor</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="oauth2client.appengine-pysrc.html#OAuth2DecoratorFromClientSecrets.__init__">source&nbsp;code</a></span>
@@ -205,7 +206,8 @@
   <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
         <span class="sig-arg">filename</span>,
         <span class="sig-arg">scope</span>,
-        <span class="sig-arg">message</span>=<span class="sig-default">None</span>)</span>
+        <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
     <br /><em class="fname">(Constructor)</em>
   </h3>
   </td><td align="right" valign="top"
@@ -224,6 +226,8 @@
     clientsecrets file is missing or invalid. The message may contain HTML and
     will be presented on the web interface for any method that uses the
     decorator.
+  cache: An optional cache service client that implements get() and set() 
+    methods. See clientsecrets.loadfile() for details.
 
 </pre>
   <dl class="fields">
@@ -257,7 +261,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.OAuth2Handler-class.html b/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
index 9525a03..c8a11a1 100644
--- a/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
+++ b/docs/epy/oauth2client.appengine.OAuth2Handler-class.html
@@ -259,7 +259,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.appengine.StorageByKeyName-class.html b/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
index a7f5323..97d1371 100644
--- a/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
+++ b/docs/epy/oauth2client.appengine.StorageByKeyName-class.html
@@ -375,7 +375,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client-module.html b/docs/epy/oauth2client.client-module.html
index a20a4d6..c2bc7c3 100644
--- a/docs/epy/oauth2client.client-module.html
+++ b/docs/epy/oauth2client.client-module.html
@@ -340,7 +340,8 @@
         <span class="summary-sig-arg">code</span>,
         <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">redirect_uri</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
-        <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>)</span><br />
+        <span class="summary-sig-arg">http</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
       Returns OAuth2Credentials from a clientsecrets file and an auth code.</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>
@@ -359,7 +360,8 @@
         <tr>
           <td><span class="summary-sig"><a href="oauth2client.client-module.html#flow_from_clientsecrets" class="summary-sig-name">flow_from_clientsecrets</a>(<span class="summary-sig-arg">filename</span>,
         <span class="summary-sig-arg">scope</span>,
-        <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>)</span><br />
+        <span class="summary-sig-arg">message</span>=<span class="summary-sig-default">None</span>,
+        <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
       Create a Flow from a clientsecrets file.</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>
@@ -619,7 +621,8 @@
         <span class="sig-arg">code</span>,
         <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
         <span class="sig-arg">redirect_uri</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string">postmessage</code><code class="variable-quote">'</code></span>,
-        <span class="sig-arg">http</span>=<span class="sig-default">None</span>)</span>
+        <span class="sig-arg">http</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="oauth2client.client-pysrc.html#credentials_from_clientsecrets_and_code">source&nbsp;code</a></span>&nbsp;
@@ -644,6 +647,8 @@
   redirect_uri: string, this is generally set to 'postmessage' to match the
     redirect_uri that the client specified
   http: httplib2.Http, optional http instance to use to do the fetch
+  cache: An optional cache service client that implements get() and set() 
+    methods. See clientsecrets.loadfile() for details.
 
 Returns:
   An OAuth2Credentials object.
@@ -669,7 +674,8 @@
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">flow_from_clientsecrets</span>(<span class="sig-arg">filename</span>,
         <span class="sig-arg">scope</span>,
-        <span class="sig-arg">message</span>=<span class="sig-default">None</span>)</span>
+        <span class="sig-arg">message</span>=<span class="sig-default">None</span>,
+        <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="oauth2client.client-pysrc.html#flow_from_clientsecrets">source&nbsp;code</a></span>&nbsp;
@@ -689,6 +695,8 @@
     clientsecrets file is missing or invalid. If message is provided then
     sys.exit will be called in the case of an error. If message in not
     provided then clientsecrets.InvalidClientSecretsError will be raised.
+  cache: An optional cache service client that implements get() and set() 
+    methods. See clientsecrets.loadfile() for details.
 
 Returns:
   A Flow object.
@@ -764,7 +772,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client-pysrc.html b/docs/epy/oauth2client.client-pysrc.html
index 14fbd46..627d89f 100644
--- a/docs/epy/oauth2client.client-pysrc.html
+++ b/docs/epy/oauth2client.client-pysrc.html
@@ -536,322 +536,323 @@
 <a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line">      <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
 <a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line">                                   <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
 <a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">401</tt><tt class="py-op">:</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line">        <tt id="link-48" class="py-name"><a title="apiclient.discovery.logger
+<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line">      <tt class="py-comment"># Older API (GData) respond with 403</tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-number">401</tt><tt class="py-op">,</tt> <tt class="py-number">403</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line">        <tt id="link-48" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
-oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-48', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Refreshing due to a 401'</tt><tt class="py-op">)</tt> </tt>
-<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="oauth2client.appengine.AppAssertionCredentials._refresh
+oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-48', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Refreshing due to a %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="oauth2client.appengine.AppAssertionCredentials._refresh
 oauth2client.client.AccessTokenCredentials._refresh
 oauth2client.client.OAuth2Credentials._refresh" class="py-name" href="#" onclick="return doclink('link-49', '_refresh', 'link-46');">_refresh</a></tt><tt class="py-op">(</tt><tt class="py-name">request_orig</tt><tt class="py-op">)</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="oauth2client.client.Credentials.apply
+<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name"><a title="oauth2client.client.Credentials.apply
 oauth2client.client.OAuth2Credentials.apply" class="py-name" href="#" onclick="return doclink('link-50', 'apply', 'link-47');">apply</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">                            <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line"> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">    <tt class="py-comment"># Replace the request method with our own closure.</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">    <tt id="link-51" class="py-name"><a title="apiclient.http
+<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">request_orig</tt><tt class="py-op">(</tt><tt class="py-name">uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">,</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">                            <tt class="py-name">redirections</tt><tt class="py-op">,</tt> <tt class="py-name">connection_type</tt><tt class="py-op">)</tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line"> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">    <tt class="py-comment"># Replace the request method with our own closure.</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">    <tt id="link-51" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-51', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-52', 'request', 'link-44');">request</a></tt> <tt class="py-op">=</tt> <tt class="py-name">new_request</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line"> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">    <tt class="py-comment"># Set credentials as a property of the request method.</tt> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="apiclient.http
+<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line"> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line">    <tt class="py-comment"># Set credentials as a property of the request method.</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">    <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-53', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-54', 'request', 'link-44');">request</a></tt><tt class="py-op">,</tt> <tt class="py-string">'credentials'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line"> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-55" class="py-name"><a title="apiclient.http
+<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line"> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-55" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-55', 'http', 'link-43');">http</a></tt> </tt>
-</div><a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials.refresh"></a><div id="OAuth2Credentials.refresh-def"><a name="L436"></a><tt class="py-lineno"> 436</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.refresh-toggle" onclick="return toggle('OAuth2Credentials.refresh');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#refresh">refresh</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.refresh-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.refresh-expanded"><a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line">    <tt class="py-docstring">"""Forces a refresh of the access_token.</tt> </tt>
-<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used to make the refresh</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line"><tt class="py-docstring">        request.</tt> </tt>
-<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="oauth2client.appengine.AppAssertionCredentials._refresh
+</div><a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials.refresh"></a><div id="OAuth2Credentials.refresh-def"><a name="L437"></a><tt class="py-lineno"> 437</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.refresh-toggle" onclick="return toggle('OAuth2Credentials.refresh');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#refresh">refresh</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.refresh-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.refresh-expanded"><a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">    <tt class="py-docstring">"""Forces a refresh of the access_token.</tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, an http object to be used to make the refresh</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line"><tt class="py-docstring">        request.</tt> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="oauth2client.appengine.AppAssertionCredentials._refresh
 oauth2client.client.AccessTokenCredentials._refresh
 oauth2client.client.OAuth2Credentials._refresh" class="py-name" href="#" onclick="return doclink('link-56', '_refresh', 'link-46');">_refresh</a></tt><tt class="py-op">(</tt><tt id="link-57" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-57', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-58', 'request', 'link-44');">request</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials.apply"></a><div id="OAuth2Credentials.apply-def"><a name="L445"></a><tt class="py-lineno"> 445</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.apply-toggle" onclick="return toggle('OAuth2Credentials.apply');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#apply">apply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.apply-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.apply-expanded"><a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add the authorization to the headers.</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, the headers to add the Authorization header to.</tt> </tt>
-<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Authorization'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Bearer '</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> </tt>
-</div><a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials.to_json"></a><div id="OAuth2Credentials.to_json-def"><a name="L453"></a><tt class="py-lineno"> 453</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.to_json-toggle" onclick="return toggle('OAuth2Credentials.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.to_json-expanded"><a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="apiclient.http.MediaUpload._to_json
+</div><a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials.apply"></a><div id="OAuth2Credentials.apply-def"><a name="L446"></a><tt class="py-lineno"> 446</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.apply-toggle" onclick="return toggle('OAuth2Credentials.apply');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#apply">apply</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.apply-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.apply-expanded"><a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line">    <tt class="py-docstring">"""Add the authorization to the headers.</tt> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line"><tt class="py-docstring">      headers: dict, the headers to add the Authorization header to.</tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">    <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'Authorization'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'Bearer '</tt> <tt class="py-op">+</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> </tt>
+</div><a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials.to_json"></a><div id="OAuth2Credentials.to_json-def"><a name="L454"></a><tt class="py-lineno"> 454</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.to_json-toggle" onclick="return toggle('OAuth2Credentials.to_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#to_json">to_json</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.to_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.to_json-expanded"><a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name"><a title="apiclient.http.MediaUpload._to_json
 oauth2client.client.Credentials._to_json" class="py-name" href="#" onclick="return doclink('link-59', '_to_json', 'link-23');">_to_json</a></tt><tt class="py-op">(</tt><tt id="link-60" class="py-name"><a title="oauth2client.client.Credentials" class="py-name" href="#" onclick="return doclink('link-60', 'Credentials', 'link-24');">Credentials</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="oauth2client.client.Credentials.NON_SERIALIZED_MEMBERS" class="py-name" href="#" onclick="return doclink('link-61', 'NON_SERIALIZED_MEMBERS', 'link-18');">NON_SERIALIZED_MEMBERS</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line"> </tt>
-<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
-<a name="OAuth2Credentials.from_json"></a><div id="OAuth2Credentials.from_json-def"><a name="L457"></a><tt class="py-lineno"> 457</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.from_json-toggle" onclick="return toggle('OAuth2Credentials.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.from_json-expanded"><a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">    <tt class="py-docstring">"""Instantiate a Credentials object from a JSON description of it. The JSON</tt> </tt>
-<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line"><tt class="py-docstring">    should have been produced by calling .to_json() on the object.</tt> </tt>
-<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line"><tt class="py-docstring">      data: dict, A deserialized JSON object.</tt> </tt>
-<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line"><tt class="py-docstring">      An instance of a Credentials subclass.</tt> </tt>
-<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-62', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'token_expiry'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">        <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">strptime</tt><tt class="py-op">(</tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">            <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="oauth2client.client.EXPIRY_FORMAT" class="py-name" href="#" onclick="return doclink('link-63', 'EXPIRY_FORMAT', 'link-14');">EXPIRY_FORMAT</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">    <tt class="py-name">retval</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name" targets="Class oauth2client.client.OAuth2Credentials=oauth2client.client.OAuth2Credentials-class.html"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-64', 'OAuth2Credentials', 'link-64');">OAuth2Credentials</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'client_id'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'client_secret'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'refresh_token'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'user_agent'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="apiclient.schema.Schemas.get
+</div><a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
+<a name="OAuth2Credentials.from_json"></a><div id="OAuth2Credentials.from_json-def"><a name="L458"></a><tt class="py-lineno"> 458</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.from_json-toggle" onclick="return toggle('OAuth2Credentials.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.from_json-expanded"><a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">    <tt class="py-docstring">"""Instantiate a Credentials object from a JSON description of it. The JSON</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line"><tt class="py-docstring">    should have been produced by calling .to_json() on the object.</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line"><tt class="py-docstring">      data: dict, A deserialized JSON object.</tt> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line"><tt class="py-docstring">      An instance of a Credentials subclass.</tt> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-62', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-string">'token_expiry'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">data</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">        <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">strptime</tt><tt class="py-op">(</tt> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">            <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-63" class="py-name"><a title="oauth2client.client.EXPIRY_FORMAT" class="py-name" href="#" onclick="return doclink('link-63', 'EXPIRY_FORMAT', 'link-14');">EXPIRY_FORMAT</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line">    <tt class="py-name">retval</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name" targets="Class oauth2client.client.OAuth2Credentials=oauth2client.client.OAuth2Credentials-class.html"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-64', 'OAuth2Credentials', 'link-64');">OAuth2Credentials</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'client_id'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'client_secret'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'refresh_token'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_expiry'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'user_agent'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-65', 'get', 'link-17');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id_token'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">    <tt class="py-name">retval</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'invalid'</tt><tt class="py-op">]</tt> </tt>
-<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">retval</tt> </tt>
-</div><a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line"> </tt>
-<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
-<a name="OAuth2Credentials.access_token_expired"></a><div id="OAuth2Credentials.access_token_expired-def"><a name="L488"></a><tt class="py-lineno"> 488</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.access_token_expired-toggle" onclick="return toggle('OAuth2Credentials.access_token_expired');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#access_token_expired">access_token_expired</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.access_token_expired-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.access_token_expired-expanded"><a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line">    <tt class="py-docstring">"""True if the credential is expired or invalid.</tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line"><tt class="py-docstring">    If the token_expiry isn't set, we assume the token doesn't expire.</tt> </tt>
-<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt><tt class="py-op">:</tt> </tt>
-<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">:</tt> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line"> </tt>
-<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">    <tt class="py-name">now</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">utcnow</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">now</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">:</tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">      <tt id="link-66" class="py-name"><a title="apiclient.discovery.logger
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">    <tt class="py-name">retval</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'invalid'</tt><tt class="py-op">]</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">retval</tt> </tt>
+</div><a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line"> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">property</tt> </tt>
+<a name="OAuth2Credentials.access_token_expired"></a><div id="OAuth2Credentials.access_token_expired-def"><a name="L489"></a><tt class="py-lineno"> 489</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.access_token_expired-toggle" onclick="return toggle('OAuth2Credentials.access_token_expired');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#access_token_expired">access_token_expired</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.access_token_expired-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.access_token_expired-expanded"><a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">    <tt class="py-docstring">"""True if the credential is expired or invalid.</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line"><tt class="py-docstring">    If the token_expiry isn't set, we assume the token doesn't expire.</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt><tt class="py-op">:</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line"> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">:</tt> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line"> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">    <tt class="py-name">now</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">utcnow</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">now</tt> <tt class="py-op">&gt;=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">:</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">      <tt id="link-66" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-66', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'access_token is expired. Now: %s, token_expiry: %s'</tt><tt class="py-op">,</tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">                  <tt class="py-name">now</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">)</tt> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials.set_store"></a><div id="OAuth2Credentials.set_store-def"><a name="L506"></a><tt class="py-lineno"> 506</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.set_store-toggle" onclick="return toggle('OAuth2Credentials.set_store');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#set_store">set_store</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">store</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.set_store-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.set_store-expanded"><a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">    <tt class="py-docstring">"""Set the Storage for the credential.</tt> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line"><tt class="py-docstring">      store: Storage, an implementation of Stroage object.</tt> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line"><tt class="py-docstring">        This is needed to store the latest access_token if it</tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line"><tt class="py-docstring">        has expired and been refreshed.  This implementation uses</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line"><tt class="py-docstring">        locking to check for updates before updating the</tt> </tt>
-<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line"><tt class="py-docstring">        access_token.</tt> </tt>
-<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt> <tt class="py-op">=</tt> <tt class="py-name">store</tt> </tt>
-</div><a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials._updateFromCredential"></a><div id="OAuth2Credentials._updateFromCredential-def"><a name="L518"></a><tt class="py-lineno"> 518</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._updateFromCredential-toggle" onclick="return toggle('OAuth2Credentials._updateFromCredential');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential">_updateFromCredential</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials._updateFromCredential-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._updateFromCredential-expanded"><a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">    <tt class="py-docstring">"""Update this Credential from another instance."""</tt> </tt>
-<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.__getstate__()=oauth2client.client.OAuth2Credentials-class.html#__getstate__"><a title="oauth2client.client.OAuth2Credentials.__getstate__" class="py-name" href="#" onclick="return doclink('link-67', '__getstate__', 'link-67');">__getstate__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials.__getstate__"></a><div id="OAuth2Credentials.__getstate__-def"><a name="L522"></a><tt class="py-lineno"> 522</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.__getstate__-toggle" onclick="return toggle('OAuth2Credentials.__getstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#__getstate__">__getstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.__getstate__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.__getstate__-expanded"><a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line">    <tt class="py-docstring">"""Trim the state down to something that can be pickled."""</tt> </tt>
-<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'store'</tt><tt class="py-op">]</tt> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">d</tt> </tt>
-</div><a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials.__setstate__"></a><div id="OAuth2Credentials.__setstate__-def"><a name="L528"></a><tt class="py-lineno"> 528</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.__setstate__-toggle" onclick="return toggle('OAuth2Credentials.__setstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#__setstate__">__setstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials.__setstate__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.__setstate__-expanded"><a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">    <tt class="py-docstring">"""Reconstitute the state of the object from being pickled."""</tt> </tt>
-<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">state</tt><tt class="py-op">)</tt> </tt>
-<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials._generate_refresh_request_body"></a><div id="OAuth2Credentials._generate_refresh_request_body-def"><a name="L533"></a><tt class="py-lineno"> 533</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._generate_refresh_request_body-toggle" onclick="return toggle('OAuth2Credentials._generate_refresh_request_body');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials._generate_refresh_request_body-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._generate_refresh_request_body-expanded"><a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">    <tt class="py-docstring">"""Generate the body that will be used in the refresh request."""</tt> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">        <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'refresh_token'</tt><tt class="py-op">,</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">        <tt class="py-string">'client_id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt class="py-string">'client_secret'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> </tt>
-<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">        <tt class="py-string">'refresh_token'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">refresh_token</tt><tt class="py-op">,</tt> </tt>
-<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">body</tt> </tt>
-</div><a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials._generate_refresh_request_headers"></a><div id="OAuth2Credentials._generate_refresh_request_headers-def"><a name="L543"></a><tt class="py-lineno"> 543</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._generate_refresh_request_headers-toggle" onclick="return toggle('OAuth2Credentials._generate_refresh_request_headers');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers">_generate_refresh_request_headers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials._generate_refresh_request_headers-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._generate_refresh_request_headers-expanded"><a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line">    <tt class="py-docstring">"""Generate the headers that will be used in the refresh request."""</tt> </tt>
-<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">        <tt class="py-string">'content-type'</tt><tt class="py-op">:</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt><tt class="py-op">,</tt> </tt>
-<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line"> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> </tt>
-<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line"> </tt>
-<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">headers</tt> </tt>
-</div><a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials._refresh"></a><div id="OAuth2Credentials._refresh-def"><a name="L554"></a><tt class="py-lineno"> 554</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._refresh-toggle" onclick="return toggle('OAuth2Credentials._refresh');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_refresh">_refresh</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials._refresh-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._refresh-expanded"><a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">    <tt class="py-docstring">"""Refreshes the access_token.</tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line"><tt class="py-docstring">    This method first checks by reading the Storage object if available.</tt> </tt>
-<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"><tt class="py-docstring">    If a refresh is still needed, it holds the Storage lock until the</tt> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line"><tt class="py-docstring">    refresh is completed.</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line"><tt class="py-docstring">      http_request: callable, a callable that matches the method signature of</tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line"><tt class="py-docstring">        httplib2.Http.request, used to make the refresh request.</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line"><tt class="py-docstring">      AccessTokenRefreshError: When the refresh fails.</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">:</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method oauth2client.client.OAuth2Credentials._do_refresh_request()=oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request"><a title="oauth2client.client.OAuth2Credentials._do_refresh_request" class="py-name" href="#" onclick="return doclink('link-68', '_do_refresh_request', 'link-68');">_do_refresh_request</a></tt><tt class="py-op">(</tt><tt class="py-name">http_request</tt><tt class="py-op">)</tt> </tt>
-<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="oauth2client.client.Storage.acquire_lock
+<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">                  <tt class="py-name">now</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt><tt class="py-op">)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials.set_store"></a><div id="OAuth2Credentials.set_store-def"><a name="L507"></a><tt class="py-lineno"> 507</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.set_store-toggle" onclick="return toggle('OAuth2Credentials.set_store');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#set_store">set_store</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">store</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.set_store-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.set_store-expanded"><a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">    <tt class="py-docstring">"""Set the Storage for the credential.</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line"><tt class="py-docstring">      store: Storage, an implementation of Stroage object.</tt> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line"><tt class="py-docstring">        This is needed to store the latest access_token if it</tt> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line"><tt class="py-docstring">        has expired and been refreshed.  This implementation uses</tt> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line"><tt class="py-docstring">        locking to check for updates before updating the</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line"><tt class="py-docstring">        access_token.</tt> </tt>
+<a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt> <tt class="py-op">=</tt> <tt class="py-name">store</tt> </tt>
+</div><a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials._updateFromCredential"></a><div id="OAuth2Credentials._updateFromCredential-def"><a name="L519"></a><tt class="py-lineno"> 519</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._updateFromCredential-toggle" onclick="return toggle('OAuth2Credentials._updateFromCredential');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential">_updateFromCredential</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">other</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials._updateFromCredential-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._updateFromCredential-expanded"><a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line">    <tt class="py-docstring">"""Update this Credential from another instance."""</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">other</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name" targets="Method oauth2client.client.OAuth2Credentials.__getstate__()=oauth2client.client.OAuth2Credentials-class.html#__getstate__"><a title="oauth2client.client.OAuth2Credentials.__getstate__" class="py-name" href="#" onclick="return doclink('link-67', '__getstate__', 'link-67');">__getstate__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials.__getstate__"></a><div id="OAuth2Credentials.__getstate__-def"><a name="L523"></a><tt class="py-lineno"> 523</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.__getstate__-toggle" onclick="return toggle('OAuth2Credentials.__getstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#__getstate__">__getstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.__getstate__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.__getstate__-expanded"><a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line">    <tt class="py-docstring">"""Trim the state down to something that can be pickled."""</tt> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">copy</tt><tt class="py-op">.</tt><tt class="py-name">copy</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">)</tt> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">    <tt class="py-keyword">del</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'store'</tt><tt class="py-op">]</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">d</tt> </tt>
+</div><a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials.__setstate__"></a><div id="OAuth2Credentials.__setstate__-def"><a name="L529"></a><tt class="py-lineno"> 529</tt> <a class="py-toggle" href="#" id="OAuth2Credentials.__setstate__-toggle" onclick="return toggle('OAuth2Credentials.__setstate__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#__setstate__">__setstate__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials.__setstate__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials.__setstate__-expanded"><a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line">    <tt class="py-docstring">"""Reconstitute the state of the object from being pickled."""</tt> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">__dict__</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">state</tt><tt class="py-op">)</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials._generate_refresh_request_body"></a><div id="OAuth2Credentials._generate_refresh_request_body-def"><a name="L534"></a><tt class="py-lineno"> 534</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._generate_refresh_request_body-toggle" onclick="return toggle('OAuth2Credentials._generate_refresh_request_body');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials._generate_refresh_request_body-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._generate_refresh_request_body-expanded"><a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">    <tt class="py-docstring">"""Generate the body that will be used in the refresh request."""</tt> </tt>
+<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">        <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'refresh_token'</tt><tt class="py-op">,</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt class="py-string">'client_id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">        <tt class="py-string">'client_secret'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt class="py-string">'refresh_token'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">refresh_token</tt><tt class="py-op">,</tt> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">        <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">body</tt> </tt>
+</div><a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials._generate_refresh_request_headers"></a><div id="OAuth2Credentials._generate_refresh_request_headers-def"><a name="L544"></a><tt class="py-lineno"> 544</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._generate_refresh_request_headers-toggle" onclick="return toggle('OAuth2Credentials._generate_refresh_request_headers');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers">_generate_refresh_request_headers</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials._generate_refresh_request_headers-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._generate_refresh_request_headers-expanded"><a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">    <tt class="py-docstring">"""Generate the headers that will be used in the refresh request."""</tt> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">        <tt class="py-string">'content-type'</tt><tt class="py-op">:</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt><tt class="py-op">,</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line"> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line"> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">headers</tt> </tt>
+</div><a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials._refresh"></a><div id="OAuth2Credentials._refresh-def"><a name="L555"></a><tt class="py-lineno"> 555</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._refresh-toggle" onclick="return toggle('OAuth2Credentials._refresh');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_refresh">_refresh</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials._refresh-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._refresh-expanded"><a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">    <tt class="py-docstring">"""Refreshes the access_token.</tt> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"><tt class="py-docstring">    This method first checks by reading the Storage object if available.</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line"><tt class="py-docstring">    If a refresh is still needed, it holds the Storage lock until the</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line"><tt class="py-docstring">    refresh is completed.</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line"><tt class="py-docstring">      http_request: callable, a callable that matches the method signature of</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line"><tt class="py-docstring">        httplib2.Http.request, used to make the refresh request.</tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line"><tt class="py-docstring">      AccessTokenRefreshError: When the refresh fails.</tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">:</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name" targets="Method oauth2client.client.OAuth2Credentials._do_refresh_request()=oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request"><a title="oauth2client.client.OAuth2Credentials._do_refresh_request" class="py-name" href="#" onclick="return doclink('link-68', '_do_refresh_request', 'link-68');">_do_refresh_request</a></tt><tt class="py-op">(</tt><tt class="py-name">http_request</tt><tt class="py-op">)</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="oauth2client.client.Storage.acquire_lock
 oauth2client.file.Storage.acquire_lock
 oauth2client.multistore_file._MultiStore._Storage.acquire_lock" class="py-name" href="#" onclick="return doclink('link-69', 'acquire_lock', 'link-33');">acquire_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">        <tt class="py-name">new_cred</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="oauth2client.appengine.StorageByKeyName.locked_get
+<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">        <tt class="py-name">new_cred</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="oauth2client.appengine.StorageByKeyName.locked_get
 oauth2client.client.Storage.locked_get
 oauth2client.django_orm.Storage.locked_get
 oauth2client.file.Storage.locked_get
 oauth2client.multistore_file._MultiStore._Storage.locked_get" class="py-name" href="#" onclick="return doclink('link-70', 'locked_get', 'link-34');">locked_get</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">new_cred</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">new_cred</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-keyword">and</tt> </tt>
-<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">            <tt class="py-name">new_cred</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">          <tt id="link-71" class="py-name"><a title="apiclient.discovery.logger
+<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">new_cred</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">new_cred</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-keyword">and</tt> </tt>
+<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">            <tt class="py-name">new_cred</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> <tt class="py-op">!=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line">          <tt id="link-71" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-71', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Updated access_token read from Storage'</tt><tt class="py-op">)</tt> </tt>
-<a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method oauth2client.client.OAuth2Credentials._updateFromCredential()=oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential"><a title="oauth2client.client.OAuth2Credentials._updateFromCredential" class="py-name" href="#" onclick="return doclink('link-72', '_updateFromCredential', 'link-72');">_updateFromCredential</a></tt><tt class="py-op">(</tt><tt class="py-name">new_cred</tt><tt class="py-op">)</tt> </tt>
-<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="oauth2client.client.OAuth2Credentials._do_refresh_request" class="py-name" href="#" onclick="return doclink('link-73', '_do_refresh_request', 'link-68');">_do_refresh_request</a></tt><tt class="py-op">(</tt><tt class="py-name">http_request</tt><tt class="py-op">)</tt> </tt>
-<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">      <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="oauth2client.client.Storage.release_lock
+<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name" targets="Method oauth2client.client.OAuth2Credentials._updateFromCredential()=oauth2client.client.OAuth2Credentials-class.html#_updateFromCredential"><a title="oauth2client.client.OAuth2Credentials._updateFromCredential" class="py-name" href="#" onclick="return doclink('link-72', '_updateFromCredential', 'link-72');">_updateFromCredential</a></tt><tt class="py-op">(</tt><tt class="py-name">new_cred</tt><tt class="py-op">)</tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="oauth2client.client.OAuth2Credentials._do_refresh_request" class="py-name" href="#" onclick="return doclink('link-73', '_do_refresh_request', 'link-68');">_do_refresh_request</a></tt><tt class="py-op">(</tt><tt class="py-name">http_request</tt><tt class="py-op">)</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">      <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="oauth2client.client.Storage.release_lock
 oauth2client.file.Storage.release_lock
 oauth2client.multistore_file._MultiStore._Storage.release_lock" class="py-name" href="#" onclick="return doclink('link-74', 'release_lock', 'link-35');">release_lock</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2Credentials._do_refresh_request"></a><div id="OAuth2Credentials._do_refresh_request-def"><a name="L583"></a><tt class="py-lineno"> 583</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._do_refresh_request-toggle" onclick="return toggle('OAuth2Credentials._do_refresh_request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request">_do_refresh_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2Credentials._do_refresh_request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._do_refresh_request-expanded"><a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">    <tt class="py-docstring">"""Refresh the access_token using the refresh_token.</tt> </tt>
-<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line"><tt class="py-docstring">      http_request: callable, a callable that matches the method signature of</tt> </tt>
-<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line"><tt class="py-docstring">        httplib2.Http.request, used to make the refresh request.</tt> </tt>
-<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line"><tt class="py-docstring">      AccessTokenRefreshError: When the refresh fails.</tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method oauth2client.client.AssertionCredentials._generate_refresh_request_body()=oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body,Method oauth2client.client.OAuth2Credentials._generate_refresh_request_body()=oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_body"><a title="oauth2client.client.AssertionCredentials._generate_refresh_request_body
+</div><a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2Credentials._do_refresh_request"></a><div id="OAuth2Credentials._do_refresh_request-def"><a name="L584"></a><tt class="py-lineno"> 584</tt> <a class="py-toggle" href="#" id="OAuth2Credentials._do_refresh_request-toggle" onclick="return toggle('OAuth2Credentials._do_refresh_request');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2Credentials-class.html#_do_refresh_request">_do_refresh_request</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2Credentials._do_refresh_request-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2Credentials._do_refresh_request-expanded"><a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line">    <tt class="py-docstring">"""Refresh the access_token using the refresh_token.</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line"><tt class="py-docstring">      http_request: callable, a callable that matches the method signature of</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line"><tt class="py-docstring">        httplib2.Http.request, used to make the refresh request.</tt> </tt>
+<a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line"><tt class="py-docstring">      AccessTokenRefreshError: When the refresh fails.</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name" targets="Method oauth2client.client.AssertionCredentials._generate_refresh_request_body()=oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body,Method oauth2client.client.OAuth2Credentials._generate_refresh_request_body()=oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_body"><a title="oauth2client.client.AssertionCredentials._generate_refresh_request_body
 oauth2client.client.OAuth2Credentials._generate_refresh_request_body" class="py-name" href="#" onclick="return doclink('link-75', '_generate_refresh_request_body', 'link-75');">_generate_refresh_request_body</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method oauth2client.client.OAuth2Credentials._generate_refresh_request_headers()=oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers"><a title="oauth2client.client.OAuth2Credentials._generate_refresh_request_headers" class="py-name" href="#" onclick="return doclink('link-76', '_generate_refresh_request_headers', 'link-76');">_generate_refresh_request_headers</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line"> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">    <tt id="link-77" class="py-name"><a title="apiclient.discovery.logger
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name" targets="Method oauth2client.client.OAuth2Credentials._generate_refresh_request_headers()=oauth2client.client.OAuth2Credentials-class.html#_generate_refresh_request_headers"><a title="oauth2client.client.OAuth2Credentials._generate_refresh_request_headers" class="py-name" href="#" onclick="return doclink('link-76', '_generate_refresh_request_headers', 'link-76');">_generate_refresh_request_headers</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line"> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">    <tt id="link-77" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-77', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Refreshing access_token'</tt><tt class="py-op">)</tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">http_request</tt><tt class="py-op">(</tt> </tt>
-<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt><tt class="py-op">:</tt> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">      <tt class="py-comment"># TODO(jcgregorio) Raise an error if loads fails?</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line">      <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-78', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">refresh_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-name">http_request</tt><tt class="py-op">(</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt><tt class="py-op">:</tt> </tt>
+<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line">      <tt class="py-comment"># TODO(jcgregorio) Raise an error if loads fails?</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">      <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-78', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">refresh_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-79', 'get', 'link-17');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'refresh_token'</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">refresh_token</tt><tt class="py-op">)</tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'expires_in'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">timedelta</tt><tt class="py-op">(</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">            <tt class="py-name">seconds</tt><tt class="py-op">=</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'expires_in'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">utcnow</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">:</tt> </tt>
-<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="oauth2client.appengine.StorageByKeyName.locked_put
+<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'expires_in'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">timedelta</tt><tt class="py-op">(</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">            <tt class="py-name">seconds</tt><tt class="py-op">=</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'expires_in'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">utcnow</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">:</tt> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-80" class="py-name"><a title="oauth2client.appengine.StorageByKeyName.locked_put
 oauth2client.client.Storage.locked_put
 oauth2client.django_orm.Storage.locked_put
 oauth2client.file.Storage.locked_put
 oauth2client.multistore_file._MultiStore._Storage.locked_put" class="py-name" href="#" onclick="return doclink('link-80', 'locked_put', 'link-37');">locked_put</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">      <tt class="py-comment"># An {'error':...} response body means the token is expired or revoked,</tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">      <tt class="py-comment"># so we flag the credentials as such.</tt> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line">      <tt id="link-81" class="py-name"><a title="apiclient.discovery.logger
+<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">      <tt class="py-comment"># An {'error':...} response body means the token is expired or revoked,</tt> </tt>
+<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line">      <tt class="py-comment"># so we flag the credentials as such.</tt> </tt>
+<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">      <tt id="link-81" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-81', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Failed to retrieve access token: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">      <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'Invalid response %s.'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> </tt>
-<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-82', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">          <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">:</tt> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="oauth2client.appengine.StorageByKeyName.locked_put
+<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">      <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'Invalid response %s.'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'status'</tt><tt class="py-op">]</tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">      <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-82', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">          <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line">          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">          <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">:</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">store</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="oauth2client.appengine.StorageByKeyName.locked_put
 oauth2client.client.Storage.locked_put
 oauth2client.django_orm.Storage.locked_put
 oauth2client.file.Storage.locked_put
 oauth2client.multistore_file._MultiStore._Storage.locked_put" class="py-name" href="#" onclick="return doclink('link-83', 'locked_put', 'link-37');">locked_put</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-84" class="py-name" targets="Class oauth2client.client.AccessTokenRefreshError=oauth2client.client.AccessTokenRefreshError-class.html"><a title="oauth2client.client.AccessTokenRefreshError" class="py-name" href="#" onclick="return doclink('link-84', 'AccessTokenRefreshError', 'link-84');">AccessTokenRefreshError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line"> </tt>
-<a name="AccessTokenCredentials"></a><div id="AccessTokenCredentials-def"><a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line"> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials-toggle" onclick="return toggle('AccessTokenCredentials');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a><tt class="py-op">(</tt><tt class="py-base-class">OAuth2Credentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AccessTokenCredentials-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="AccessTokenCredentials-expanded"><a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">  <tt class="py-docstring">"""Credentials object for OAuth 2.0.</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line"><tt class="py-docstring">  Credentials can be applied to an httplib2.Http object using the</tt> </tt>
-<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"><tt class="py-docstring">  authorize() method, which then signs each request from that object</tt> </tt>
-<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line"><tt class="py-docstring">  with the OAuth 2.0 access token.  This set of credentials is for the</tt> </tt>
-<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line"><tt class="py-docstring">  use case where you have acquired an OAuth 2.0 access_token from</tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line"><tt class="py-docstring">  another place such as a JavaScript client or another web</tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line"><tt class="py-docstring">  application, and wish to use it from Python. Because only the</tt> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"><tt class="py-docstring">  access_token is present it can not be refreshed and will in time</tt> </tt>
-<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line"><tt class="py-docstring">  expire.</tt> </tt>
-<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line"><tt class="py-docstring">  AccessTokenCredentials objects may be safely pickled and unpickled.</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line"><tt class="py-docstring">  Usage:</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line"><tt class="py-docstring">    credentials = AccessTokenCredentials('&lt;an access token&gt;',</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line"><tt class="py-docstring">      'my-user-agent/1.0')</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line"><tt class="py-docstring">    http = httplib2.Http()</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line"><tt class="py-docstring">    http = credentials.authorize(http)</tt> </tt>
-<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line"><tt class="py-docstring">  Exceptions:</tt> </tt>
-<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line"><tt class="py-docstring">    AccessTokenCredentialsExpired: raised when the access_token expires or is</tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line"><tt class="py-docstring">      revoked.</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line"> </tt>
-<a name="AccessTokenCredentials.__init__"></a><div id="AccessTokenCredentials.__init__-def"><a name="L653"></a><tt class="py-lineno"> 653</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials.__init__-toggle" onclick="return toggle('AccessTokenCredentials.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">access_token</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AccessTokenCredentials.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AccessTokenCredentials.__init__-expanded"><a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create an instance of OAuth2Credentials</tt> </tt>
-<a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line"><tt class="py-docstring">    This is one of the few types if Credentials that you should contrust,</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line"><tt class="py-docstring">    Credentials objects are usually instantiated by a Flow.</tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line"><tt class="py-docstring">      access_token: string, access token.</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line"><tt class="py-docstring">      user_agent: string, The HTTP User-Agent to provide for this application.</tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line"><tt class="py-docstring">    Notes:</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line"><tt class="py-docstring">      store: callable, a callable that when passed a Credential</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line"><tt class="py-docstring">        will store the credential back to where it came from.</tt> </tt>
-<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name" targets="Class oauth2client.client.AccessTokenCredentials=oauth2client.client.AccessTokenCredentials-class.html"><a title="oauth2client.client.AccessTokenCredentials" class="py-name" href="#" onclick="return doclink('link-85', 'AccessTokenCredentials', 'link-85');">AccessTokenCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-class.html#__init__,Method apiclient.http.MediaIoBaseUpload.__init__()=apiclient.http.MediaIoBaseUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.locked_file.LockedFile.__init__()=oauth2client.locked_file.LockedFile-class.html#__init__,Method oauth2client.locked_file._Opener.__init__()=oauth2client.locked_file._Opener-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
+<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">      <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-84" class="py-name" targets="Class oauth2client.client.AccessTokenRefreshError=oauth2client.client.AccessTokenRefreshError-class.html"><a title="oauth2client.client.AccessTokenRefreshError" class="py-name" href="#" onclick="return doclink('link-84', 'AccessTokenRefreshError', 'link-84');">AccessTokenRefreshError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line"> </tt>
+<a name="AccessTokenCredentials"></a><div id="AccessTokenCredentials-def"><a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line"> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials-toggle" onclick="return toggle('AccessTokenCredentials');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html">AccessTokenCredentials</a><tt class="py-op">(</tt><tt class="py-base-class">OAuth2Credentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AccessTokenCredentials-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="AccessTokenCredentials-expanded"><a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">  <tt class="py-docstring">"""Credentials object for OAuth 2.0.</tt> </tt>
+<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"><tt class="py-docstring">  Credentials can be applied to an httplib2.Http object using the</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line"><tt class="py-docstring">  authorize() method, which then signs each request from that object</tt> </tt>
+<a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line"><tt class="py-docstring">  with the OAuth 2.0 access token.  This set of credentials is for the</tt> </tt>
+<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line"><tt class="py-docstring">  use case where you have acquired an OAuth 2.0 access_token from</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line"><tt class="py-docstring">  another place such as a JavaScript client or another web</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line"><tt class="py-docstring">  application, and wish to use it from Python. Because only the</tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line"><tt class="py-docstring">  access_token is present it can not be refreshed and will in time</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line"><tt class="py-docstring">  expire.</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line"><tt class="py-docstring">  AccessTokenCredentials objects may be safely pickled and unpickled.</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line"><tt class="py-docstring">  Usage:</tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line"><tt class="py-docstring">    credentials = AccessTokenCredentials('&lt;an access token&gt;',</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line"><tt class="py-docstring">      'my-user-agent/1.0')</tt> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line"><tt class="py-docstring">    http = httplib2.Http()</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line"><tt class="py-docstring">    http = credentials.authorize(http)</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line"><tt class="py-docstring">  Exceptions:</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line"><tt class="py-docstring">    AccessTokenCredentialsExpired: raised when the access_token expires or is</tt> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line"><tt class="py-docstring">      revoked.</tt> </tt>
+<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line"> </tt>
+<a name="AccessTokenCredentials.__init__"></a><div id="AccessTokenCredentials.__init__-def"><a name="L654"></a><tt class="py-lineno"> 654</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials.__init__-toggle" onclick="return toggle('AccessTokenCredentials.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">access_token</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AccessTokenCredentials.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AccessTokenCredentials.__init__-expanded"><a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create an instance of OAuth2Credentials</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line"><tt class="py-docstring">    This is one of the few types if Credentials that you should contrust,</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line"><tt class="py-docstring">    Credentials objects are usually instantiated by a Flow.</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line"><tt class="py-docstring">      access_token: string, access token.</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line"><tt class="py-docstring">      user_agent: string, The HTTP User-Agent to provide for this application.</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line"><tt class="py-docstring">    Notes:</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line"><tt class="py-docstring">      store: callable, a callable that when passed a Credential</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line"><tt class="py-docstring">        will store the credential back to where it came from.</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-85" class="py-name" targets="Class oauth2client.client.AccessTokenCredentials=oauth2client.client.AccessTokenCredentials-class.html"><a title="oauth2client.client.AccessTokenCredentials" class="py-name" href="#" onclick="return doclink('link-85', 'AccessTokenCredentials', 'link-85');">AccessTokenCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name" targets="Method apiclient.errors.BatchError.__init__()=apiclient.errors.BatchError-class.html#__init__,Method apiclient.errors.HttpError.__init__()=apiclient.errors.HttpError-class.html#__init__,Method apiclient.errors.UnexpectedBodyError.__init__()=apiclient.errors.UnexpectedBodyError-class.html#__init__,Method apiclient.errors.UnexpectedMethodError.__init__()=apiclient.errors.UnexpectedMethodError-class.html#__init__,Method apiclient.http.BatchHttpRequest.__init__()=apiclient.http.BatchHttpRequest-class.html#__init__,Method apiclient.http.HttpMock.__init__()=apiclient.http.HttpMock-class.html#__init__,Method apiclient.http.HttpMockSequence.__init__()=apiclient.http.HttpMockSequence-class.html#__init__,Method apiclient.http.HttpRequest.__init__()=apiclient.http.HttpRequest-class.html#__init__,Method apiclient.http.HttpRequestMock.__init__()=apiclient.http.HttpRequestMock-class.html#__init__,Method apiclient.http.MediaDownloadProgress.__init__()=apiclient.http.MediaDownloadProgress-class.html#__init__,Method apiclient.http.MediaFileUpload.__init__()=apiclient.http.MediaFileUpload-class.html#__init__,Method apiclient.http.MediaInMemoryUpload.__init__()=apiclient.http.MediaInMemoryUpload-class.html#__init__,Method apiclient.http.MediaIoBaseDownload.__init__()=apiclient.http.MediaIoBaseDownload-class.html#__init__,Method apiclient.http.MediaIoBaseUpload.__init__()=apiclient.http.MediaIoBaseUpload-class.html#__init__,Method apiclient.http.MediaUploadProgress.__init__()=apiclient.http.MediaUploadProgress-class.html#__init__,Method apiclient.http.RequestMockBuilder.__init__()=apiclient.http.RequestMockBuilder-class.html#__init__,Method apiclient.model.JsonModel.__init__()=apiclient.model.JsonModel-class.html#__init__,Method apiclient.model.ProtocolBufferModel.__init__()=apiclient.model.ProtocolBufferModel-class.html#__init__,Method apiclient.schema.Schemas.__init__()=apiclient.schema.Schemas-class.html#__init__,Method apiclient.schema._SchemaToStruct.__init__()=apiclient.schema._SchemaToStruct-class.html#__init__,Method oauth2client.appengine.AppAssertionCredentials.__init__()=oauth2client.appengine.AppAssertionCredentials-class.html#__init__,Method oauth2client.appengine.OAuth2Decorator.__init__()=oauth2client.appengine.OAuth2Decorator-class.html#__init__,Method oauth2client.appengine.OAuth2DecoratorFromClientSecrets.__init__()=oauth2client.appengine.OAuth2DecoratorFromClientSecrets-class.html#__init__,Method oauth2client.appengine.StorageByKeyName.__init__()=oauth2client.appengine.StorageByKeyName-class.html#__init__,Method oauth2client.client.AccessTokenCredentials.__init__()=oauth2client.client.AccessTokenCredentials-class.html#__init__,Method oauth2client.client.AssertionCredentials.__init__()=oauth2client.client.AssertionCredentials-class.html#__init__,Method oauth2client.client.MemoryCache.__init__()=oauth2client.client.MemoryCache-class.html#__init__,Method oauth2client.client.OAuth2Credentials.__init__()=oauth2client.client.OAuth2Credentials-class.html#__init__,Method oauth2client.client.OAuth2WebServerFlow.__init__()=oauth2client.client.OAuth2WebServerFlow-class.html#__init__,Method oauth2client.client.SignedJwtAssertionCredentials.__init__()=oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__,Method oauth2client.crypt.Signer.__init__()=oauth2client.crypt.Signer-class.html#__init__,Method oauth2client.crypt.Verifier.__init__()=oauth2client.crypt.Verifier-class.html#__init__,Method oauth2client.django_orm.Storage.__init__()=oauth2client.django_orm.Storage-class.html#__init__,Method oauth2client.file.Storage.__init__()=oauth2client.file.Storage-class.html#__init__,Method oauth2client.locked_file.LockedFile.__init__()=oauth2client.locked_file.LockedFile-class.html#__init__,Method oauth2client.locked_file._Opener.__init__()=oauth2client.locked_file._Opener-class.html#__init__,Method oauth2client.multistore_file._MultiStore._Storage.__init__()=oauth2client.multistore_file._MultiStore._Storage-class.html#__init__,Method oauth2client.multistore_file._MultiStore.__init__()=oauth2client.multistore_file._MultiStore-class.html#__init__"><a title="apiclient.errors.BatchError.__init__
 apiclient.errors.HttpError.__init__
 apiclient.errors.UnexpectedBodyError.__init__
 apiclient.errors.UnexpectedMethodError.__init__
@@ -889,52 +890,52 @@
 oauth2client.locked_file._Opener.__init__
 oauth2client.multistore_file._MultiStore._Storage.__init__
 oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-86', '__init__', 'link-86');">__init__</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line">        <tt class="py-name">access_token</tt><tt class="py-op">,</tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">        <tt class="py-name">access_token</tt><tt class="py-op">,</tt> </tt>
 <a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">        <tt class="py-name">user_agent</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line"> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"> </tt>
-<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
-<a name="AccessTokenCredentials.from_json"></a><div id="AccessTokenCredentials.from_json-def"><a name="L678"></a><tt class="py-lineno"> 678</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials.from_json-toggle" onclick="return toggle('AccessTokenCredentials.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AccessTokenCredentials.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AccessTokenCredentials.from_json-expanded"><a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line">    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-87', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">    <tt class="py-name">retval</tt> <tt class="py-op">=</tt> <tt id="link-88" class="py-name"><a title="oauth2client.client.AccessTokenCredentials" class="py-name" href="#" onclick="return doclink('link-88', 'AccessTokenCredentials', 'link-85');">AccessTokenCredentials</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'user_agent'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">retval</tt> </tt>
-</div><a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line"> </tt>
-<a name="AccessTokenCredentials._refresh"></a><div id="AccessTokenCredentials._refresh-def"><a name="L685"></a><tt class="py-lineno"> 685</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials._refresh-toggle" onclick="return toggle('AccessTokenCredentials._refresh');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html#_refresh">_refresh</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AccessTokenCredentials._refresh-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AccessTokenCredentials._refresh-expanded"><a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-89" class="py-name" targets="Class oauth2client.client.AccessTokenCredentialsError=oauth2client.client.AccessTokenCredentialsError-class.html"><a title="oauth2client.client.AccessTokenCredentialsError" class="py-name" href="#" onclick="return doclink('link-89', 'AccessTokenCredentialsError', 'link-89');">AccessTokenCredentialsError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">        <tt class="py-string">"The access_token is expired or invalid and can't be refreshed."</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line"> </tt>
-<a name="AssertionCredentials"></a><div id="AssertionCredentials-def"><a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line"> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</tt> <a class="py-toggle" href="#" id="AssertionCredentials-toggle" onclick="return toggle('AssertionCredentials');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a><tt class="py-op">(</tt><tt class="py-base-class">OAuth2Credentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AssertionCredentials-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="AssertionCredentials-expanded"><a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">  <tt class="py-docstring">"""Abstract Credentials object used for OAuth 2.0 assertion grants.</tt> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line"><tt class="py-docstring">  This credential does not require a flow to instantiate because it</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line"><tt class="py-docstring">  represents a two legged flow, and therefore has all of the required</tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line"><tt class="py-docstring">  information to generate and refresh its own access tokens.  It must</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line"><tt class="py-docstring">  be subclassed to generate the appropriate assertion string.</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line"><tt class="py-docstring">  AssertionCredentials objects may be safely pickled and unpickled.</tt> </tt>
-<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line"> </tt>
-<a name="AssertionCredentials.__init__"></a><div id="AssertionCredentials.__init__-def"><a name="L701"></a><tt class="py-lineno"> 701</tt> <a class="py-toggle" href="#" id="AssertionCredentials.__init__-toggle" onclick="return toggle('AssertionCredentials.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">assertion_type</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">,</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">               <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">               <tt class="py-op">**</tt><tt class="py-param">unused_kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AssertionCredentials.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AssertionCredentials.__init__-expanded"><a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for AssertionFlowCredentials.</tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line"><tt class="py-docstring">      assertion_type: string, assertion type that will be declared to the auth</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line"><tt class="py-docstring">          server</tt> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line"><tt class="py-docstring">      user_agent: string, The HTTP User-Agent to provide for this application.</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line"><tt class="py-docstring">      token_uri: string, URI for token endpoint. For convenience</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line"><tt class="py-docstring">        defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-90" class="py-name" targets="Class oauth2client.client.AssertionCredentials=oauth2client.client.AssertionCredentials-class.html"><a title="oauth2client.client.AssertionCredentials" class="py-name" href="#" onclick="return doclink('link-90', 'AssertionCredentials', 'link-90');">AssertionCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="apiclient.errors.BatchError.__init__
+<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line">        <tt class="py-name">user_agent</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line"> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line"> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
+<a name="AccessTokenCredentials.from_json"></a><div id="AccessTokenCredentials.from_json-def"><a name="L679"></a><tt class="py-lineno"> 679</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials.from_json-toggle" onclick="return toggle('AccessTokenCredentials.from_json');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AccessTokenCredentials.from_json-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AccessTokenCredentials.from_json-expanded"><a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">    <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-87', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line">    <tt class="py-name">retval</tt> <tt class="py-op">=</tt> <tt id="link-88" class="py-name"><a title="oauth2client.client.AccessTokenCredentials" class="py-name" href="#" onclick="return doclink('link-88', 'AccessTokenCredentials', 'link-85');">AccessTokenCredentials</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">        <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'user_agent'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">retval</tt> </tt>
+</div><a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line"> </tt>
+<a name="AccessTokenCredentials._refresh"></a><div id="AccessTokenCredentials._refresh-def"><a name="L686"></a><tt class="py-lineno"> 686</tt> <a class="py-toggle" href="#" id="AccessTokenCredentials._refresh-toggle" onclick="return toggle('AccessTokenCredentials._refresh');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AccessTokenCredentials-class.html#_refresh">_refresh</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">http_request</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AccessTokenCredentials._refresh-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AccessTokenCredentials._refresh-expanded"><a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-89" class="py-name" targets="Class oauth2client.client.AccessTokenCredentialsError=oauth2client.client.AccessTokenCredentialsError-class.html"><a title="oauth2client.client.AccessTokenCredentialsError" class="py-name" href="#" onclick="return doclink('link-89', 'AccessTokenCredentialsError', 'link-89');">AccessTokenCredentialsError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">        <tt class="py-string">"The access_token is expired or invalid and can't be refreshed."</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line"> </tt>
+<a name="AssertionCredentials"></a><div id="AssertionCredentials-def"><a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line"> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <a class="py-toggle" href="#" id="AssertionCredentials-toggle" onclick="return toggle('AssertionCredentials');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html">AssertionCredentials</a><tt class="py-op">(</tt><tt class="py-base-class">OAuth2Credentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AssertionCredentials-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="AssertionCredentials-expanded"><a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line">  <tt class="py-docstring">"""Abstract Credentials object used for OAuth 2.0 assertion grants.</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line"><tt class="py-docstring">  This credential does not require a flow to instantiate because it</tt> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line"><tt class="py-docstring">  represents a two legged flow, and therefore has all of the required</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line"><tt class="py-docstring">  information to generate and refresh its own access tokens.  It must</tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line"><tt class="py-docstring">  be subclassed to generate the appropriate assertion string.</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line"><tt class="py-docstring">  AssertionCredentials objects may be safely pickled and unpickled.</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line"> </tt>
+<a name="AssertionCredentials.__init__"></a><div id="AssertionCredentials.__init__-def"><a name="L702"></a><tt class="py-lineno"> 702</tt> <a class="py-toggle" href="#" id="AssertionCredentials.__init__-toggle" onclick="return toggle('AssertionCredentials.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">assertion_type</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">,</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">               <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">               <tt class="py-op">**</tt><tt class="py-param">unused_kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AssertionCredentials.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AssertionCredentials.__init__-expanded"><a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for AssertionFlowCredentials.</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line"><tt class="py-docstring">      assertion_type: string, assertion type that will be declared to the auth</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line"><tt class="py-docstring">          server</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line"><tt class="py-docstring">      user_agent: string, The HTTP User-Agent to provide for this application.</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line"><tt class="py-docstring">      token_uri: string, URI for token endpoint. For convenience</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line"><tt class="py-docstring">        defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">    <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-90" class="py-name" targets="Class oauth2client.client.AssertionCredentials=oauth2client.client.AssertionCredentials-class.html"><a title="oauth2client.client.AssertionCredentials" class="py-name" href="#" onclick="return doclink('link-90', 'AssertionCredentials', 'link-90');">AssertionCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="apiclient.errors.BatchError.__init__
 apiclient.errors.HttpError.__init__
 apiclient.errors.UnexpectedBodyError.__init__
 apiclient.errors.UnexpectedMethodError.__init__
@@ -972,77 +973,77 @@
 oauth2client.locked_file._Opener.__init__
 oauth2client.multistore_file._MultiStore._Storage.__init__
 oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-91', '__init__', 'link-86');">__init__</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
 <a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">        <tt class="py-name">token_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-name">user_agent</tt><tt class="py-op">)</tt> </tt>
-<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertion_type</tt> <tt class="py-op">=</tt> <tt class="py-name">assertion_type</tt> </tt>
-</div><a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line"> </tt>
-<a name="AssertionCredentials._generate_refresh_request_body"></a><div id="AssertionCredentials._generate_refresh_request_body-def"><a name="L723"></a><tt class="py-lineno"> 723</tt> <a class="py-toggle" href="#" id="AssertionCredentials._generate_refresh_request_body-toggle" onclick="return toggle('AssertionCredentials._generate_refresh_request_body');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AssertionCredentials._generate_refresh_request_body-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AssertionCredentials._generate_refresh_request_body-expanded"><a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">    <tt class="py-name">assertion</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method oauth2client.client.AssertionCredentials._generate_assertion()=oauth2client.client.AssertionCredentials-class.html#_generate_assertion,Method oauth2client.client.SignedJwtAssertionCredentials._generate_assertion()=oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion"><a title="oauth2client.client.AssertionCredentials._generate_assertion
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">        <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-name">token_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">        <tt class="py-name">user_agent</tt><tt class="py-op">)</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertion_type</tt> <tt class="py-op">=</tt> <tt class="py-name">assertion_type</tt> </tt>
+</div><a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line"> </tt>
+<a name="AssertionCredentials._generate_refresh_request_body"></a><div id="AssertionCredentials._generate_refresh_request_body-def"><a name="L724"></a><tt class="py-lineno"> 724</tt> <a class="py-toggle" href="#" id="AssertionCredentials._generate_refresh_request_body-toggle" onclick="return toggle('AssertionCredentials._generate_refresh_request_body');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html#_generate_refresh_request_body">_generate_refresh_request_body</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AssertionCredentials._generate_refresh_request_body-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AssertionCredentials._generate_refresh_request_body-expanded"><a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">    <tt class="py-name">assertion</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name" targets="Method oauth2client.client.AssertionCredentials._generate_assertion()=oauth2client.client.AssertionCredentials-class.html#_generate_assertion,Method oauth2client.client.SignedJwtAssertionCredentials._generate_assertion()=oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion"><a title="oauth2client.client.AssertionCredentials._generate_assertion
 oauth2client.client.SignedJwtAssertionCredentials._generate_assertion" class="py-name" href="#" onclick="return doclink('link-92', '_generate_assertion', 'link-92');">_generate_assertion</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line"> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">        <tt class="py-string">'assertion_type'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertion_type</tt><tt class="py-op">,</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt class="py-string">'assertion'</tt><tt class="py-op">:</tt> <tt class="py-name">assertion</tt><tt class="py-op">,</tt> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'assertion'</tt><tt class="py-op">,</tt> </tt>
-<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">        <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line"> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">body</tt> </tt>
-</div><a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line"> </tt>
-<a name="AssertionCredentials._generate_assertion"></a><div id="AssertionCredentials._generate_assertion-def"><a name="L734"></a><tt class="py-lineno"> 734</tt> <a class="py-toggle" href="#" id="AssertionCredentials._generate_assertion-toggle" onclick="return toggle('AssertionCredentials._generate_assertion');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html#_generate_assertion">_generate_assertion</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="AssertionCredentials._generate_assertion-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AssertionCredentials._generate_assertion-expanded"><a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">    <tt class="py-docstring">"""Generate the assertion string that will be used in the access token</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line"><tt class="py-docstring">    request.</tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">    <tt id="link-93" class="py-name"><a title="apiclient.model._abstract
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line"> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt class="py-string">'assertion_type'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertion_type</tt><tt class="py-op">,</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt class="py-string">'assertion'</tt><tt class="py-op">:</tt> <tt class="py-name">assertion</tt><tt class="py-op">,</tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">        <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'assertion'</tt><tt class="py-op">,</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">        <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line"> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">body</tt> </tt>
+</div><a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line"> </tt>
+<a name="AssertionCredentials._generate_assertion"></a><div id="AssertionCredentials._generate_assertion-def"><a name="L735"></a><tt class="py-lineno"> 735</tt> <a class="py-toggle" href="#" id="AssertionCredentials._generate_assertion-toggle" onclick="return toggle('AssertionCredentials._generate_assertion');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.AssertionCredentials-class.html#_generate_assertion">_generate_assertion</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="AssertionCredentials._generate_assertion-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="AssertionCredentials._generate_assertion-expanded"><a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">    <tt class="py-docstring">"""Generate the assertion string that will be used in the access token</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line"><tt class="py-docstring">    request.</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">    <tt id="link-93" class="py-name"><a title="apiclient.model._abstract
 oauth2client.client._abstract" class="py-name" href="#" onclick="return doclink('link-93', '_abstract', 'link-19');">_abstract</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line"> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-94" class="py-name"><a title="oauth2client.client.HAS_OPENSSL" class="py-name" href="#" onclick="return doclink('link-94', 'HAS_OPENSSL', 'link-2');">HAS_OPENSSL</a></tt><tt class="py-op">:</tt> </tt>
-<a name="SignedJwtAssertionCredentials"></a><div id="SignedJwtAssertionCredentials-def"><a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">  <tt class="py-comment"># PyOpenSSL is not a prerequisite for oauth2client, so if it is missing then</tt> </tt>
-<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">  <tt class="py-comment"># don't create the SignedJwtAssertionCredentials or the verify_id_token()</tt> </tt>
-<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">  <tt class="py-comment"># method.</tt> </tt>
-<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line"> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials-toggle" onclick="return toggle('SignedJwtAssertionCredentials');">-</a><tt class="py-line">  <tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a><tt class="py-op">(</tt><tt class="py-base-class">AssertionCredentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SignedJwtAssertionCredentials-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="SignedJwtAssertionCredentials-expanded"><a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">    <tt class="py-docstring">"""Credentials object used for OAuth 2.0 Signed JWT assertion grants.</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"><tt class="py-docstring">    This credential does not require a flow to instantiate because it represents</tt> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"><tt class="py-docstring">    a two legged flow, and therefore has all of the required information to</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"><tt class="py-docstring">    generate and refresh its own access tokens.</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line"><tt class="py-docstring">    SignedJwtAssertionCredentials requires PyOpenSSL and because of that it does</tt> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line"><tt class="py-docstring">    not work on App Engine. For App Engine you may consider using</tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line"><tt class="py-docstring">    AppAssertionCredentials.</tt> </tt>
-<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line"> </tt>
-<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">    <tt id="link-95" class="py-name" targets="Variable oauth2client.client.SignedJwtAssertionCredentials.MAX_TOKEN_LIFETIME_SECS=oauth2client.client.SignedJwtAssertionCredentials-class.html#MAX_TOKEN_LIFETIME_SECS,Variable oauth2client.crypt.MAX_TOKEN_LIFETIME_SECS=oauth2client.crypt-module.html#MAX_TOKEN_LIFETIME_SECS"><a title="oauth2client.client.SignedJwtAssertionCredentials.MAX_TOKEN_LIFETIME_SECS
+</div></div><a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line"> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-94" class="py-name"><a title="oauth2client.client.HAS_OPENSSL" class="py-name" href="#" onclick="return doclink('link-94', 'HAS_OPENSSL', 'link-2');">HAS_OPENSSL</a></tt><tt class="py-op">:</tt> </tt>
+<a name="SignedJwtAssertionCredentials"></a><div id="SignedJwtAssertionCredentials-def"><a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">  <tt class="py-comment"># PyOpenSSL is not a prerequisite for oauth2client, so if it is missing then</tt> </tt>
+<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">  <tt class="py-comment"># don't create the SignedJwtAssertionCredentials or the verify_id_token()</tt> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">  <tt class="py-comment"># method.</tt> </tt>
+<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line"> </tt>
+<a name="L746"></a><tt class="py-lineno"> 746</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials-toggle" onclick="return toggle('SignedJwtAssertionCredentials');">-</a><tt class="py-line">  <tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html">SignedJwtAssertionCredentials</a><tt class="py-op">(</tt><tt class="py-base-class">AssertionCredentials</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SignedJwtAssertionCredentials-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="SignedJwtAssertionCredentials-expanded"><a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">    <tt class="py-docstring">"""Credentials object used for OAuth 2.0 Signed JWT assertion grants.</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line"><tt class="py-docstring">    This credential does not require a flow to instantiate because it represents</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"><tt class="py-docstring">    a two legged flow, and therefore has all of the required information to</tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line"><tt class="py-docstring">    generate and refresh its own access tokens.</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line"><tt class="py-docstring">    SignedJwtAssertionCredentials requires PyOpenSSL and because of that it does</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line"><tt class="py-docstring">    not work on App Engine. For App Engine you may consider using</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line"><tt class="py-docstring">    AppAssertionCredentials.</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line"> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">    <tt id="link-95" class="py-name" targets="Variable oauth2client.client.SignedJwtAssertionCredentials.MAX_TOKEN_LIFETIME_SECS=oauth2client.client.SignedJwtAssertionCredentials-class.html#MAX_TOKEN_LIFETIME_SECS,Variable oauth2client.crypt.MAX_TOKEN_LIFETIME_SECS=oauth2client.crypt-module.html#MAX_TOKEN_LIFETIME_SECS"><a title="oauth2client.client.SignedJwtAssertionCredentials.MAX_TOKEN_LIFETIME_SECS
 oauth2client.crypt.MAX_TOKEN_LIFETIME_SECS" class="py-name" href="#" onclick="return doclink('link-95', 'MAX_TOKEN_LIFETIME_SECS', 'link-95');">MAX_TOKEN_LIFETIME_SECS</a></tt> <tt class="py-op">=</tt> <tt class="py-number">3600</tt> <tt class="py-comment"># 1 hour in seconds</tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line"> </tt>
-<a name="SignedJwtAssertionCredentials.__init__"></a><div id="SignedJwtAssertionCredentials.__init__-def"><a name="L759"></a><tt class="py-lineno"> 759</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials.__init__-toggle" onclick="return toggle('SignedJwtAssertionCredentials.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-param">service_account_name</tt><tt class="py-op">,</tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">        <tt class="py-param">private_key</tt><tt class="py-op">,</tt> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-param">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line">        <tt class="py-param">private_key_password</tt><tt class="py-op">=</tt><tt class="py-string">'notasecret'</tt><tt class="py-op">,</tt> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
-<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">        <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SignedJwtAssertionCredentials.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++++"></div><div id="SignedJwtAssertionCredentials.__init__-expanded"><a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">      <tt class="py-docstring">"""Constructor for SignedJwtAssertionCredentials.</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"><tt class="py-docstring">      Args:</tt> </tt>
-<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line"><tt class="py-docstring">        service_account_name: string, id for account, usually an email address.</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"><tt class="py-docstring">        private_key: string, private key in P12 format.</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"><tt class="py-docstring">        scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line"><tt class="py-docstring">          requested.</tt> </tt>
-<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"><tt class="py-docstring">        private_key_password: string, password for private_key.</tt> </tt>
-<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line"><tt class="py-docstring">        user_agent: string, HTTP User-Agent to provide for this application.</tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line"><tt class="py-docstring">        token_uri: string, URI for token endpoint. For convenience</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line"><tt class="py-docstring">          defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line"><tt class="py-docstring">        kwargs: kwargs, Additional parameters to add to the JWT token, for</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"><tt class="py-docstring">          example prn=joe@xample.org."""</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line"> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">      <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-96" class="py-name" targets="Class oauth2client.client.SignedJwtAssertionCredentials=oauth2client.client.SignedJwtAssertionCredentials-class.html"><a title="oauth2client.client.SignedJwtAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-96', 'SignedJwtAssertionCredentials', 'link-96');">SignedJwtAssertionCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="apiclient.errors.BatchError.__init__
+<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line"> </tt>
+<a name="SignedJwtAssertionCredentials.__init__"></a><div id="SignedJwtAssertionCredentials.__init__-def"><a name="L760"></a><tt class="py-lineno"> 760</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials.__init__-toggle" onclick="return toggle('SignedJwtAssertionCredentials.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">        <tt class="py-param">service_account_name</tt><tt class="py-op">,</tt> </tt>
+<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-param">private_key</tt><tt class="py-op">,</tt> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line">        <tt class="py-param">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt class="py-param">private_key_password</tt><tt class="py-op">=</tt><tt class="py-string">'notasecret'</tt><tt class="py-op">,</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">        <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">        <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SignedJwtAssertionCredentials.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++++"></div><div id="SignedJwtAssertionCredentials.__init__-expanded"><a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">      <tt class="py-docstring">"""Constructor for SignedJwtAssertionCredentials.</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line"><tt class="py-docstring">      Args:</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"><tt class="py-docstring">        service_account_name: string, id for account, usually an email address.</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"><tt class="py-docstring">        private_key: string, private key in P12 format.</tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line"><tt class="py-docstring">        scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"><tt class="py-docstring">          requested.</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line"><tt class="py-docstring">        private_key_password: string, password for private_key.</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line"><tt class="py-docstring">        user_agent: string, HTTP User-Agent to provide for this application.</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line"><tt class="py-docstring">        token_uri: string, URI for token endpoint. For convenience</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line"><tt class="py-docstring">          defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"><tt class="py-docstring">        kwargs: kwargs, Additional parameters to add to the JWT token, for</tt> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line"><tt class="py-docstring">          example prn=joe@xample.org."""</tt> </tt>
+<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line"> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">      <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-96" class="py-name" targets="Class oauth2client.client.SignedJwtAssertionCredentials=oauth2client.client.SignedJwtAssertionCredentials-class.html"><a title="oauth2client.client.SignedJwtAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-96', 'SignedJwtAssertionCredentials', 'link-96');">SignedJwtAssertionCredentials</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="apiclient.errors.BatchError.__init__
 apiclient.errors.HttpError.__init__
 apiclient.errors.UnexpectedBodyError.__init__
 apiclient.errors.UnexpectedMethodError.__init__
@@ -1080,439 +1081,444 @@
 oauth2client.locked_file._Opener.__init__
 oauth2client.multistore_file._MultiStore._Storage.__init__
 oauth2client.multistore_file._MultiStore.__init__" class="py-name" href="#" onclick="return doclink('link-97', '__init__', 'link-86');">__init__</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">          <tt class="py-string">'http://oauth.net/grant_type/jwt/1.0/bearer'</tt><tt class="py-op">,</tt> </tt>
-<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">          <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">          <tt class="py-name">token_uri</tt><tt class="py-op">=</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">          <tt class="py-op">)</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line"> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">        <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line"> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">      <tt class="py-comment"># Keep base64 encoded so it can be stored in JSON.</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64encode</tt><tt class="py-op">(</tt><tt class="py-name">private_key</tt><tt class="py-op">)</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line"> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key_password</tt> <tt class="py-op">=</tt> <tt class="py-name">private_key_password</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">service_account_name</tt> <tt class="py-op">=</tt> <tt class="py-name">service_account_name</tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kwargs</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt> </tt>
-</div><a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
-<a name="SignedJwtAssertionCredentials.from_json"></a><div id="SignedJwtAssertionCredentials.from_json-def"><a name="L799"></a><tt class="py-lineno"> 799</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials.from_json-toggle" onclick="return toggle('SignedJwtAssertionCredentials.from_json');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SignedJwtAssertionCredentials.from_json-collapsed" style="display:none;" pad="++++" indent="++++++++++"></div><div id="SignedJwtAssertionCredentials.from_json-expanded"><a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-98', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">      <tt class="py-name">retval</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="oauth2client.client.SignedJwtAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-99', 'SignedJwtAssertionCredentials', 'link-96');">SignedJwtAssertionCredentials</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">          <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'service_account_name'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">          <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'private_key'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">          <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'scope'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">          <tt class="py-name">private_key_password</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'private_key_password'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">          <tt class="py-name">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'user_agent'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">          <tt class="py-name">token_uri</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">          <tt class="py-op">**</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'kwargs'</tt><tt class="py-op">]</tt> </tt>
-<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">          <tt class="py-op">)</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">      <tt class="py-name">retval</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'invalid'</tt><tt class="py-op">]</tt> </tt>
-<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">      <tt class="py-name">retval</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">retval</tt> </tt>
-</div><a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line"> </tt>
-<a name="SignedJwtAssertionCredentials._generate_assertion"></a><div id="SignedJwtAssertionCredentials._generate_assertion-def"><a name="L814"></a><tt class="py-lineno"> 814</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials._generate_assertion-toggle" onclick="return toggle('SignedJwtAssertionCredentials._generate_assertion');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion">_generate_assertion</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="SignedJwtAssertionCredentials._generate_assertion-collapsed" style="display:none;" pad="++++" indent="++++++++++"></div><div id="SignedJwtAssertionCredentials._generate_assertion-expanded"><a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">      <tt class="py-docstring">"""Generate the assertion that will be used in the request."""</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">      <tt class="py-name">now</tt> <tt class="py-op">=</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">      <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">          <tt class="py-string">'aud'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">          <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">          <tt class="py-string">'iat'</tt><tt class="py-op">:</tt> <tt class="py-name">now</tt><tt class="py-op">,</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">          <tt class="py-string">'exp'</tt><tt class="py-op">:</tt> <tt class="py-name">now</tt> <tt class="py-op">+</tt> <tt id="link-100" class="py-name"><a title="oauth2client.client.SignedJwtAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-100', 'SignedJwtAssertionCredentials', 'link-96');">SignedJwtAssertionCredentials</a></tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="oauth2client.client.SignedJwtAssertionCredentials.MAX_TOKEN_LIFETIME_SECS
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">          <tt class="py-string">'http://oauth.net/grant_type/jwt/1.0/bearer'</tt><tt class="py-op">,</tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">          <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">          <tt class="py-name">token_uri</tt><tt class="py-op">=</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">          <tt class="py-op">)</tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line"> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">        <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line"> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">      <tt class="py-comment"># Keep base64 encoded so it can be stored in JSON.</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64encode</tt><tt class="py-op">(</tt><tt class="py-name">private_key</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line"> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key_password</tt> <tt class="py-op">=</tt> <tt class="py-name">private_key_password</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">service_account_name</tt> <tt class="py-op">=</tt> <tt class="py-name">service_account_name</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">      <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kwargs</tt> <tt class="py-op">=</tt> <tt class="py-name">kwargs</tt> </tt>
+</div><a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line"> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">    <tt class="py-decorator">@</tt><tt class="py-decorator">classmethod</tt> </tt>
+<a name="SignedJwtAssertionCredentials.from_json"></a><div id="SignedJwtAssertionCredentials.from_json-def"><a name="L800"></a><tt class="py-lineno"> 800</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials.from_json-toggle" onclick="return toggle('SignedJwtAssertionCredentials.from_json');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html#from_json">from_json</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">s</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SignedJwtAssertionCredentials.from_json-collapsed" style="display:none;" pad="++++" indent="++++++++++"></div><div id="SignedJwtAssertionCredentials.from_json-expanded"><a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">      <tt class="py-name">data</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-98', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">      <tt class="py-name">retval</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="oauth2client.client.SignedJwtAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-99', 'SignedJwtAssertionCredentials', 'link-96');">SignedJwtAssertionCredentials</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">          <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'service_account_name'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">          <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'private_key'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">          <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'scope'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">          <tt class="py-name">private_key_password</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'private_key_password'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">          <tt class="py-name">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'user_agent'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">          <tt class="py-name">token_uri</tt><tt class="py-op">=</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">          <tt class="py-op">**</tt><tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'kwargs'</tt><tt class="py-op">]</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">          <tt class="py-op">)</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">      <tt class="py-name">retval</tt><tt class="py-op">.</tt><tt class="py-name">invalid</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'invalid'</tt><tt class="py-op">]</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">      <tt class="py-name">retval</tt><tt class="py-op">.</tt><tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">data</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt class="py-name">retval</tt> </tt>
+</div><a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line"> </tt>
+<a name="SignedJwtAssertionCredentials._generate_assertion"></a><div id="SignedJwtAssertionCredentials._generate_assertion-def"><a name="L815"></a><tt class="py-lineno"> 815</tt> <a class="py-toggle" href="#" id="SignedJwtAssertionCredentials._generate_assertion-toggle" onclick="return toggle('SignedJwtAssertionCredentials._generate_assertion');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.SignedJwtAssertionCredentials-class.html#_generate_assertion">_generate_assertion</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="SignedJwtAssertionCredentials._generate_assertion-collapsed" style="display:none;" pad="++++" indent="++++++++++"></div><div id="SignedJwtAssertionCredentials._generate_assertion-expanded"><a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">      <tt class="py-docstring">"""Generate the assertion that will be used in the request."""</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">      <tt class="py-name">now</tt> <tt class="py-op">=</tt> <tt class="py-name">long</tt><tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">      <tt class="py-name">payload</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">          <tt class="py-string">'aud'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">          <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">          <tt class="py-string">'iat'</tt><tt class="py-op">:</tt> <tt class="py-name">now</tt><tt class="py-op">,</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">          <tt class="py-string">'exp'</tt><tt class="py-op">:</tt> <tt class="py-name">now</tt> <tt class="py-op">+</tt> <tt id="link-100" class="py-name"><a title="oauth2client.client.SignedJwtAssertionCredentials" class="py-name" href="#" onclick="return doclink('link-100', 'SignedJwtAssertionCredentials', 'link-96');">SignedJwtAssertionCredentials</a></tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="oauth2client.client.SignedJwtAssertionCredentials.MAX_TOKEN_LIFETIME_SECS
 oauth2client.crypt.MAX_TOKEN_LIFETIME_SECS" class="py-name" href="#" onclick="return doclink('link-101', 'MAX_TOKEN_LIFETIME_SECS', 'link-95');">MAX_TOKEN_LIFETIME_SECS</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">          <tt class="py-string">'iss'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">service_account_name</tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">      <tt class="py-op">}</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">      <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">      <tt id="link-102" class="py-name"><a title="apiclient.discovery.logger
+<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">          <tt class="py-string">'iss'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">service_account_name</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">      <tt class="py-op">}</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">      <tt class="py-name">payload</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">      <tt id="link-102" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-102', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">debug</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">payload</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line"> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">      <tt class="py-name">private_key</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt><tt class="py-op">)</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-103" class="py-name"><a title="oauth2client.crypt.make_signed_jwt" class="py-name" href="#" onclick="return doclink('link-103', 'make_signed_jwt', 'link-8');">make_signed_jwt</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">          <tt id="link-104" class="py-name"><a title="oauth2client.crypt.Signer" class="py-name" href="#" onclick="return doclink('link-104', 'Signer', 'link-5');">Signer</a></tt><tt class="py-op">.</tt><tt id="link-105" class="py-name" targets="Static Method oauth2client.crypt.Signer.from_string()=oauth2client.crypt.Signer-class.html#from_string,Static Method oauth2client.crypt.Verifier.from_string()=oauth2client.crypt.Verifier-class.html#from_string"><a title="oauth2client.crypt.Signer.from_string
+<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">      <tt class="py-name">private_key</tt> <tt class="py-op">=</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">b64decode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key</tt><tt class="py-op">)</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-103" class="py-name"><a title="oauth2client.crypt.make_signed_jwt" class="py-name" href="#" onclick="return doclink('link-103', 'make_signed_jwt', 'link-8');">make_signed_jwt</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">          <tt id="link-104" class="py-name"><a title="oauth2client.crypt.Signer" class="py-name" href="#" onclick="return doclink('link-104', 'Signer', 'link-5');">Signer</a></tt><tt class="py-op">.</tt><tt id="link-105" class="py-name" targets="Static Method oauth2client.crypt.Signer.from_string()=oauth2client.crypt.Signer-class.html#from_string,Static Method oauth2client.crypt.Verifier.from_string()=oauth2client.crypt.Verifier-class.html#from_string"><a title="oauth2client.crypt.Signer.from_string
 oauth2client.crypt.Verifier.from_string" class="py-name" href="#" onclick="return doclink('link-105', 'from_string', 'link-105');">from_string</a></tt><tt class="py-op">(</tt><tt class="py-name">private_key</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">private_key_password</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">payload</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">  <tt class="py-comment"># Only used in verify_id_token(), which is always calling to the same URI</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">  <tt class="py-comment"># for the certs.</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">  <tt id="link-106" class="py-name" targets="Variable oauth2client.client._cached_http=oauth2client.client-module.html#_cached_http"><a title="oauth2client.client._cached_http" class="py-name" href="#" onclick="return doclink('link-106', '_cached_http', 'link-106');">_cached_http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt id="link-107" class="py-name" targets="Class oauth2client.client.MemoryCache=oauth2client.client.MemoryCache-class.html"><a title="oauth2client.client.MemoryCache" class="py-name" href="#" onclick="return doclink('link-107', 'MemoryCache', 'link-107');">MemoryCache</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="verify_id_token"></a><div id="verify_id_token-def"><a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line"> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt> <a class="py-toggle" href="#" id="verify_id_token-toggle" onclick="return toggle('verify_id_token');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#verify_id_token">verify_id_token</a><tt class="py-op">(</tt><tt class="py-param">id_token</tt><tt class="py-op">,</tt> <tt class="py-param">audience</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line">      <tt class="py-param">cert_uri</tt><tt class="py-op">=</tt><tt id="link-108" class="py-name"><a title="oauth2client.client.ID_TOKEN_VERIFICATON_CERTS" class="py-name" href="#" onclick="return doclink('link-108', 'ID_TOKEN_VERIFICATON_CERTS', 'link-15');">ID_TOKEN_VERIFICATON_CERTS</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="verify_id_token-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="verify_id_token-expanded"><a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">    <tt class="py-docstring">"""Verifies a signed JWT id_token.</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"><tt class="py-docstring">    This function requires PyOpenSSL and because of that it does not work on</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line"><tt class="py-docstring">    App Engine. For App Engine you may consider using AppAssertionCredentials.</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"><tt class="py-docstring">      id_token: string, A Signed JWT.</tt> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"><tt class="py-docstring">      audience: string, The audience 'aud' that the token should be for.</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, instance to use to make the HTTP request. Callers</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line"><tt class="py-docstring">        should supply an instance that has caching enabled.</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line"><tt class="py-docstring">      cert_uri: string, URI of the certificates in JSON format to</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"><tt class="py-docstring">        verify the JWT against.</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line"><tt class="py-docstring">      The deserialized JSON in the JWT.</tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line"><tt class="py-docstring">      oauth2client.crypt.AppIdentityError if the JWT fails to verify.</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-109" class="py-name"><a title="apiclient.http
+</div></div><a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line"> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">  <tt class="py-comment"># Only used in verify_id_token(), which is always calling to the same URI</tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">  <tt class="py-comment"># for the certs.</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">  <tt id="link-106" class="py-name" targets="Variable oauth2client.client._cached_http=oauth2client.client-module.html#_cached_http"><a title="oauth2client.client._cached_http" class="py-name" href="#" onclick="return doclink('link-106', '_cached_http', 'link-106');">_cached_http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt id="link-107" class="py-name" targets="Class oauth2client.client.MemoryCache=oauth2client.client.MemoryCache-class.html"><a title="oauth2client.client.MemoryCache" class="py-name" href="#" onclick="return doclink('link-107', 'MemoryCache', 'link-107');">MemoryCache</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="verify_id_token"></a><div id="verify_id_token-def"><a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line"> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt> <a class="py-toggle" href="#" id="verify_id_token-toggle" onclick="return toggle('verify_id_token');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#verify_id_token">verify_id_token</a><tt class="py-op">(</tt><tt class="py-param">id_token</tt><tt class="py-op">,</tt> <tt class="py-param">audience</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">      <tt class="py-param">cert_uri</tt><tt class="py-op">=</tt><tt id="link-108" class="py-name"><a title="oauth2client.client.ID_TOKEN_VERIFICATON_CERTS" class="py-name" href="#" onclick="return doclink('link-108', 'ID_TOKEN_VERIFICATON_CERTS', 'link-15');">ID_TOKEN_VERIFICATON_CERTS</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="verify_id_token-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="verify_id_token-expanded"><a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">    <tt class="py-docstring">"""Verifies a signed JWT id_token.</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line"><tt class="py-docstring">    This function requires PyOpenSSL and because of that it does not work on</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line"><tt class="py-docstring">    App Engine. For App Engine you may consider using AppAssertionCredentials.</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"><tt class="py-docstring">      id_token: string, A Signed JWT.</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"><tt class="py-docstring">      audience: string, The audience 'aud' that the token should be for.</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, instance to use to make the HTTP request. Callers</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line"><tt class="py-docstring">        should supply an instance that has caching enabled.</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"><tt class="py-docstring">      cert_uri: string, URI of the certificates in JSON format to</tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"><tt class="py-docstring">        verify the JWT against.</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line"><tt class="py-docstring">      The deserialized JSON in the JWT.</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"><tt class="py-docstring">      oauth2client.crypt.AppIdentityError if the JWT fails to verify.</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-109" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-109', 'http', 'link-43');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">      <tt id="link-110" class="py-name"><a title="apiclient.http
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">      <tt id="link-110" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-110', 'http', 'link-43');">http</a></tt> <tt class="py-op">=</tt> <tt id="link-111" class="py-name"><a title="oauth2client.client._cached_http" class="py-name" href="#" onclick="return doclink('link-111', '_cached_http', 'link-106');">_cached_http</a></tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="apiclient.http
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line"> </tt>
+<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-112" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-112', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-113" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-113', 'request', 'link-44');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">cert_uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt><tt class="py-op">:</tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">      <tt class="py-name">certs</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-114', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-115" class="py-name"><a title="oauth2client.crypt.verify_signed_jwt_with_certs" class="py-name" href="#" onclick="return doclink('link-115', 'verify_signed_jwt_with_certs', 'link-11');">verify_signed_jwt_with_certs</a></tt><tt class="py-op">(</tt><tt class="py-name">id_token</tt><tt class="py-op">,</tt> <tt class="py-name">certs</tt><tt class="py-op">,</tt> <tt class="py-name">audience</tt><tt class="py-op">)</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-116" class="py-name" targets="Class oauth2client.client.VerifyJwtTokenError=oauth2client.client.VerifyJwtTokenError-class.html"><a title="oauth2client.client.VerifyJwtTokenError" class="py-name" href="#" onclick="return doclink('link-116', 'VerifyJwtTokenError', 'link-116');">VerifyJwtTokenError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Status code: %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line"> </tt>
-<a name="_urlsafe_b64decode"></a><div id="_urlsafe_b64decode-def"><a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt> <a class="py-toggle" href="#" id="_urlsafe_b64decode-toggle" onclick="return toggle('_urlsafe_b64decode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#_urlsafe_b64decode">_urlsafe_b64decode</a><tt class="py-op">(</tt><tt class="py-param">b64string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_urlsafe_b64decode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_urlsafe_b64decode-expanded"><a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">  <tt class="py-comment"># Guard against unicode strings, which base64 can't handle.</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">  <tt class="py-name">b64string</tt> <tt class="py-op">=</tt> <tt class="py-name">b64string</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ascii'</tt><tt class="py-op">)</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">  <tt class="py-name">padded</tt> <tt class="py-op">=</tt> <tt class="py-name">b64string</tt> <tt class="py-op">+</tt> <tt class="py-string">'='</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">4</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">b64string</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">urlsafe_b64decode</tt><tt class="py-op">(</tt><tt class="py-name">padded</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"> </tt>
-<a name="_extract_id_token"></a><div id="_extract_id_token-def"><a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt> <a class="py-toggle" href="#" id="_extract_id_token-toggle" onclick="return toggle('_extract_id_token');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#_extract_id_token">_extract_id_token</a><tt class="py-op">(</tt><tt class="py-param">id_token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_extract_id_token-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_extract_id_token-expanded"><a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">  <tt class="py-docstring">"""Extract the JSON payload from a JWT.</tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"><tt class="py-docstring">  Does the extraction w/o checking the signature.</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"><tt class="py-docstring">    id_token: string, OAuth 2.0 id_token.</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line"><tt class="py-docstring">    object, The deserialized JSON payload.</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">  <tt class="py-name">segments</tt> <tt class="py-op">=</tt> <tt class="py-name">id_token</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line"> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">segments</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-117" class="py-name"><a title="oauth2client.client.VerifyJwtTokenError" class="py-name" href="#" onclick="return doclink('link-117', 'VerifyJwtTokenError', 'link-116');">VerifyJwtTokenError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">      <tt class="py-string">'Wrong number of segments in token: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">id_token</tt><tt class="py-op">)</tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-118', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt id="link-119" class="py-name" targets="Function oauth2client.client._urlsafe_b64decode()=oauth2client.client-module.html#_urlsafe_b64decode,Function oauth2client.crypt._urlsafe_b64decode()=oauth2client.crypt-module.html#_urlsafe_b64decode"><a title="oauth2client.client._urlsafe_b64decode
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line"> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt><tt class="py-op">:</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">      <tt class="py-name">certs</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-114', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-115" class="py-name"><a title="oauth2client.crypt.verify_signed_jwt_with_certs" class="py-name" href="#" onclick="return doclink('link-115', 'verify_signed_jwt_with_certs', 'link-11');">verify_signed_jwt_with_certs</a></tt><tt class="py-op">(</tt><tt class="py-name">id_token</tt><tt class="py-op">,</tt> <tt class="py-name">certs</tt><tt class="py-op">,</tt> <tt class="py-name">audience</tt><tt class="py-op">)</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-116" class="py-name" targets="Class oauth2client.client.VerifyJwtTokenError=oauth2client.client.VerifyJwtTokenError-class.html"><a title="oauth2client.client.VerifyJwtTokenError" class="py-name" href="#" onclick="return doclink('link-116', 'VerifyJwtTokenError', 'link-116');">VerifyJwtTokenError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Status code: %d'</tt> <tt class="py-op">%</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"> </tt>
+<a name="_urlsafe_b64decode"></a><div id="_urlsafe_b64decode-def"><a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line"> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt> <a class="py-toggle" href="#" id="_urlsafe_b64decode-toggle" onclick="return toggle('_urlsafe_b64decode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#_urlsafe_b64decode">_urlsafe_b64decode</a><tt class="py-op">(</tt><tt class="py-param">b64string</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_urlsafe_b64decode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_urlsafe_b64decode-expanded"><a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">  <tt class="py-comment"># Guard against unicode strings, which base64 can't handle.</tt> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">  <tt class="py-name">b64string</tt> <tt class="py-op">=</tt> <tt class="py-name">b64string</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'ascii'</tt><tt class="py-op">)</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">  <tt class="py-name">padded</tt> <tt class="py-op">=</tt> <tt class="py-name">b64string</tt> <tt class="py-op">+</tt> <tt class="py-string">'='</tt> <tt class="py-op">*</tt> <tt class="py-op">(</tt><tt class="py-number">4</tt> <tt class="py-op">-</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">b64string</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">base64</tt><tt class="py-op">.</tt><tt class="py-name">urlsafe_b64decode</tt><tt class="py-op">(</tt><tt class="py-name">padded</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"> </tt>
+<a name="_extract_id_token"></a><div id="_extract_id_token-def"><a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line"> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt> <a class="py-toggle" href="#" id="_extract_id_token-toggle" onclick="return toggle('_extract_id_token');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#_extract_id_token">_extract_id_token</a><tt class="py-op">(</tt><tt class="py-param">id_token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_extract_id_token-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_extract_id_token-expanded"><a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">  <tt class="py-docstring">"""Extract the JSON payload from a JWT.</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"><tt class="py-docstring">  Does the extraction w/o checking the signature.</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"><tt class="py-docstring">    id_token: string, OAuth 2.0 id_token.</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line"><tt class="py-docstring">    object, The deserialized JSON payload.</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">  <tt class="py-name">segments</tt> <tt class="py-op">=</tt> <tt class="py-name">id_token</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">'.'</tt><tt class="py-op">)</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">segments</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-117" class="py-name"><a title="oauth2client.client.VerifyJwtTokenError" class="py-name" href="#" onclick="return doclink('link-117', 'VerifyJwtTokenError', 'link-116');">VerifyJwtTokenError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">      <tt class="py-string">'Wrong number of segments in token: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">id_token</tt><tt class="py-op">)</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-118', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt id="link-119" class="py-name" targets="Function oauth2client.client._urlsafe_b64decode()=oauth2client.client-module.html#_urlsafe_b64decode,Function oauth2client.crypt._urlsafe_b64decode()=oauth2client.crypt-module.html#_urlsafe_b64decode"><a title="oauth2client.client._urlsafe_b64decode
 oauth2client.crypt._urlsafe_b64decode" class="py-name" href="#" onclick="return doclink('link-119', '_urlsafe_b64decode', 'link-119');">_urlsafe_b64decode</a></tt><tt class="py-op">(</tt><tt class="py-name">segments</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line"> </tt>
-<a name="_parse_exchange_token_response"></a><div id="_parse_exchange_token_response-def"><a name="L894"></a><tt class="py-lineno"> 894</tt> <a class="py-toggle" href="#" id="_parse_exchange_token_response-toggle" onclick="return toggle('_parse_exchange_token_response');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#_parse_exchange_token_response">_parse_exchange_token_response</a><tt class="py-op">(</tt><tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_parse_exchange_token_response-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_parse_exchange_token_response-expanded"><a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">  <tt class="py-docstring">"""Parses response of an exchange token request.</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line"><tt class="py-docstring">  Most providers return JSON but some (e.g. Facebook) return a</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line"><tt class="py-docstring">  url-encoded string.</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"><tt class="py-docstring">    content: The body of a response</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line"><tt class="py-docstring">    Content as a dictionary object. Note that the dict could be empty,</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line"><tt class="py-docstring">    i.e. {}. That basically indicates a failure.</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">  <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">    <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-120', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">  <tt class="py-keyword">except</tt> <tt class="py-name">StandardError</tt><tt class="py-op">:</tt> </tt>
-<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">    <tt class="py-comment"># different JSON libs raise different exceptions,</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">    <tt class="py-comment"># so we just do a catch-all here</tt> </tt>
-<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">    <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line"> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">  <tt class="py-comment"># some providers respond with 'expires', others with 'expires_in'</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'expires'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'expires_in'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-string">'expires'</tt><tt class="py-op">)</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line"> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt> </tt>
-</div><a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"> </tt>
-<a name="credentials_from_code"></a><div id="credentials_from_code-def"><a name="L921"></a><tt class="py-lineno"> 921</tt> <a class="py-toggle" href="#" id="credentials_from_code-toggle" onclick="return toggle('credentials_from_code');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#credentials_from_code">credentials_from_code</a><tt class="py-op">(</tt><tt class="py-param">client_id</tt><tt class="py-op">,</tt> <tt class="py-param">client_secret</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">,</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">                        <tt class="py-param">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'postmessage'</tt><tt class="py-op">,</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">                        <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">                        <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="credentials_from_code-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="credentials_from_code-expanded"><a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">  <tt class="py-docstring">"""Exchanges an authorization code for an OAuth2Credentials object.</tt> </tt>
-<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"><tt class="py-docstring">    client_id: string, client identifier.</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line"><tt class="py-docstring">    client_secret: string, client secret.</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) to request.</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line"><tt class="py-docstring">    code: string, An authroization code, most likely passed down from</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line"><tt class="py-docstring">      the client</tt> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line"><tt class="py-docstring">    redirect_uri: string, this is generally set to 'postmessage' to match the</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line"><tt class="py-docstring">      redirect_uri that the client specified</tt> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, optional http instance to use to do the fetch</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line"><tt class="py-docstring">    token_uri: string, URI for token endpoint. For convenience</tt> </tt>
-<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"><tt class="py-docstring">      defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"><tt class="py-docstring">    An OAuth2Credentials object.</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"><tt class="py-docstring">    FlowExchangeError if the authorization code cannot be exchanged for an</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"><tt class="py-docstring">     access token</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">  <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name" targets="Class oauth2client.client.OAuth2WebServerFlow=oauth2client.client.OAuth2WebServerFlow-class.html"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-121', 'OAuth2WebServerFlow', 'link-121');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">client_secret</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">                             <tt class="py-string">'https://accounts.google.com/o/oauth2/auth'</tt><tt class="py-op">,</tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">                             <tt class="py-name">token_uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line"> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">  <tt class="py-comment"># We primarily make this call to set up the redirect_uri in the flow object</tt> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">  <tt class="py-name">uriThatWeDontReallyUse</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url()=oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-122', 'step1_get_authorize_url', 'link-122');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">  <tt id="link-123" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-123', 'credentials', 'link-38');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-124', 'step2_exchange', 'link-124');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-125" class="py-name"><a title="apiclient.http
+</div><a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line"> </tt>
+<a name="_parse_exchange_token_response"></a><div id="_parse_exchange_token_response-def"><a name="L895"></a><tt class="py-lineno"> 895</tt> <a class="py-toggle" href="#" id="_parse_exchange_token_response-toggle" onclick="return toggle('_parse_exchange_token_response');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#_parse_exchange_token_response">_parse_exchange_token_response</a><tt class="py-op">(</tt><tt class="py-param">content</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_parse_exchange_token_response-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_parse_exchange_token_response-expanded"><a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">  <tt class="py-docstring">"""Parses response of an exchange token request.</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line"><tt class="py-docstring">  Most providers return JSON but some (e.g. Facebook) return a</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line"><tt class="py-docstring">  url-encoded string.</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line"><tt class="py-docstring">    content: The body of a response</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line"><tt class="py-docstring">    Content as a dictionary object. Note that the dict could be empty,</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line"><tt class="py-docstring">    i.e. {}. That basically indicates a failure.</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">  <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">    <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">simplejson</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="oauth2client.clientsecrets.loads" class="py-name" href="#" onclick="return doclink('link-120', 'loads', 'link-26');">loads</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">  <tt class="py-keyword">except</tt> <tt class="py-name">StandardError</tt><tt class="py-op">:</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">    <tt class="py-comment"># different JSON libs raise different exceptions,</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">    <tt class="py-comment"># so we just do a catch-all here</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">    <tt class="py-name">resp</tt> <tt class="py-op">=</tt> <tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line"> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">  <tt class="py-comment"># some providers respond with 'expires', others with 'expires_in'</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'expires'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">resp</tt><tt class="py-op">:</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">[</tt><tt class="py-string">'expires_in'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">pop</tt><tt class="py-op">(</tt><tt class="py-string">'expires'</tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line"> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">resp</tt> </tt>
+</div><a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line"> </tt>
+<a name="credentials_from_code"></a><div id="credentials_from_code-def"><a name="L922"></a><tt class="py-lineno"> 922</tt> <a class="py-toggle" href="#" id="credentials_from_code-toggle" onclick="return toggle('credentials_from_code');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#credentials_from_code">credentials_from_code</a><tt class="py-op">(</tt><tt class="py-param">client_id</tt><tt class="py-op">,</tt> <tt class="py-param">client_secret</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">,</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">                        <tt class="py-param">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'postmessage'</tt><tt class="py-op">,</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">                        <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">                        <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="credentials_from_code-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="credentials_from_code-expanded"><a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">  <tt class="py-docstring">"""Exchanges an authorization code for an OAuth2Credentials object.</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line"><tt class="py-docstring">    client_id: string, client identifier.</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line"><tt class="py-docstring">    client_secret: string, client secret.</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) to request.</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line"><tt class="py-docstring">    code: string, An authroization code, most likely passed down from</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line"><tt class="py-docstring">      the client</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line"><tt class="py-docstring">    redirect_uri: string, this is generally set to 'postmessage' to match the</tt> </tt>
+<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line"><tt class="py-docstring">      redirect_uri that the client specified</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, optional http instance to use to do the fetch</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"><tt class="py-docstring">    token_uri: string, URI for token endpoint. For convenience</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line"><tt class="py-docstring">      defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"><tt class="py-docstring">    An OAuth2Credentials object.</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"><tt class="py-docstring">    FlowExchangeError if the authorization code cannot be exchanged for an</tt> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line"><tt class="py-docstring">     access token</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">  <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-121" class="py-name" targets="Class oauth2client.client.OAuth2WebServerFlow=oauth2client.client.OAuth2WebServerFlow-class.html"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-121', 'OAuth2WebServerFlow', 'link-121');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> <tt class="py-name">client_secret</tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">                             <tt class="py-string">'https://accounts.google.com/o/oauth2/auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">                             <tt class="py-name">token_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">  <tt class="py-comment"># We primarily make this call to set up the redirect_uri in the flow object</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">  <tt class="py-name">uriThatWeDontReallyUse</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url()=oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-122', 'step1_get_authorize_url', 'link-122');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">  <tt id="link-123" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-123', 'credentials', 'link-38');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name" targets="Method oauth2client.client.OAuth2WebServerFlow.step2_exchange()=oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-124', 'step2_exchange', 'link-124');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-125" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-125', 'http', 'link-43');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-126" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-126', 'credentials', 'link-38');">credentials</a></tt> </tt>
-</div><a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"> </tt>
-<a name="credentials_from_clientsecrets_and_code"></a><div id="credentials_from_clientsecrets_and_code-def"><a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt> <a class="py-toggle" href="#" id="credentials_from_clientsecrets_and_code-toggle" onclick="return toggle('credentials_from_clientsecrets_and_code');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code">credentials_from_clientsecrets_and_code</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">,</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">                                            <tt class="py-param">message</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">                                            <tt class="py-param">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'postmessage'</tt><tt class="py-op">,</tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">                                            <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="credentials_from_clientsecrets_and_code-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="credentials_from_clientsecrets_and_code-expanded"><a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">  <tt class="py-docstring">"""Returns OAuth2Credentials from a clientsecrets file and an auth code.</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"><tt class="py-docstring">  Will create the right kind of Flow based on the contents of the clientsecrets</tt> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line"><tt class="py-docstring">  file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"><tt class="py-docstring">    filename: string, File name of clientsecrets.</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) to request.</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"><tt class="py-docstring">    code: string, An authroization code, most likely passed down from</tt> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"><tt class="py-docstring">      the client</tt> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line"><tt class="py-docstring">    message: string, A friendly string to display to the user if the</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line"><tt class="py-docstring">      clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"><tt class="py-docstring">      sys.exit will be called in the case of an error. If message in not</tt> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line"><tt class="py-docstring">      provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line"><tt class="py-docstring">    redirect_uri: string, this is generally set to 'postmessage' to match the</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"><tt class="py-docstring">      redirect_uri that the client specified</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, optional http instance to use to do the fetch</tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"><tt class="py-docstring">    An OAuth2Credentials object.</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"><tt class="py-docstring">    FlowExchangeError if the authorization code cannot be exchanged for an</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line"><tt class="py-docstring">     access token</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"><tt class="py-docstring">    UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line"><tt class="py-docstring">    clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line"><tt class="py-docstring">      invalid.</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">  <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-127" class="py-name" targets="Function oauth2client.client.flow_from_clientsecrets()=oauth2client.client-module.html#flow_from_clientsecrets"><a title="oauth2client.client.flow_from_clientsecrets" class="py-name" href="#" onclick="return doclink('link-127', 'flow_from_clientsecrets', 'link-127');">flow_from_clientsecrets</a></tt><tt class="py-op">(</tt><tt id="link-128" class="py-name" targets="Method oauth2client.locked_file.LockedFile.filename()=oauth2client.locked_file.LockedFile-class.html#filename,Method oauth2client.locked_file._Opener.filename()=oauth2client.locked_file._Opener-class.html#filename"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-128', 'filename', 'link-128');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">  <tt class="py-comment"># We primarily make this call to set up the redirect_uri in the flow object</tt> </tt>
-<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">  <tt class="py-name">uriThatWeDontReallyUse</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-129', 'step1_get_authorize_url', 'link-122');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">)</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">  <tt id="link-130" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-130', 'credentials', 'link-38');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-131', 'step2_exchange', 'link-124');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-132" class="py-name"><a title="apiclient.http
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-126" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-126', 'credentials', 'link-38');">credentials</a></tt> </tt>
+</div><a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"> </tt>
+<a name="credentials_from_clientsecrets_and_code"></a><div id="credentials_from_clientsecrets_and_code-def"><a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt> <a class="py-toggle" href="#" id="credentials_from_clientsecrets_and_code-toggle" onclick="return toggle('credentials_from_clientsecrets_and_code');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#credentials_from_clientsecrets_and_code">credentials_from_clientsecrets_and_code</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">,</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">                                            <tt class="py-param">message</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">                                            <tt class="py-param">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-string">'postmessage'</tt><tt class="py-op">,</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">                                            <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">                                            <tt class="py-param">cache</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="credentials_from_clientsecrets_and_code-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="credentials_from_clientsecrets_and_code-expanded"><a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">  <tt class="py-docstring">"""Returns OAuth2Credentials from a clientsecrets file and an auth code.</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"><tt class="py-docstring">  Will create the right kind of Flow based on the contents of the clientsecrets</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"><tt class="py-docstring">  file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"><tt class="py-docstring">    filename: string, File name of clientsecrets.</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) to request.</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line"><tt class="py-docstring">    code: string, An authroization code, most likely passed down from</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line"><tt class="py-docstring">      the client</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line"><tt class="py-docstring">    message: string, A friendly string to display to the user if the</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line"><tt class="py-docstring">      clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line"><tt class="py-docstring">      sys.exit will be called in the case of an error. If message in not</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"><tt class="py-docstring">      provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"><tt class="py-docstring">    redirect_uri: string, this is generally set to 'postmessage' to match the</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"><tt class="py-docstring">      redirect_uri that the client specified</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"><tt class="py-docstring">    http: httplib2.Http, optional http instance to use to do the fetch</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"><tt class="py-docstring">    cache: An optional cache service client that implements get() and set() </tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"><tt class="py-docstring">      methods. See clientsecrets.loadfile() for details.</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line"><tt class="py-docstring">    An OAuth2Credentials object.</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line"><tt class="py-docstring">    FlowExchangeError if the authorization code cannot be exchanged for an</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line"><tt class="py-docstring">     access token</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line"><tt class="py-docstring">    UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line"><tt class="py-docstring">    clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line"><tt class="py-docstring">      invalid.</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">  <tt class="py-name">flow</tt> <tt class="py-op">=</tt> <tt id="link-127" class="py-name" targets="Function oauth2client.client.flow_from_clientsecrets()=oauth2client.client-module.html#flow_from_clientsecrets"><a title="oauth2client.client.flow_from_clientsecrets" class="py-name" href="#" onclick="return doclink('link-127', 'flow_from_clientsecrets', 'link-127');">flow_from_clientsecrets</a></tt><tt class="py-op">(</tt><tt id="link-128" class="py-name" targets="Method oauth2client.locked_file.LockedFile.filename()=oauth2client.locked_file.LockedFile-class.html#filename,Method oauth2client.locked_file._Opener.filename()=oauth2client.locked_file._Opener-class.html#filename"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-128', 'filename', 'link-128');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">scope</tt><tt class="py-op">,</tt> <tt class="py-name">message</tt><tt class="py-op">=</tt><tt class="py-name">message</tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">  <tt class="py-comment"># We primarily make this call to set up the redirect_uri in the flow object</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">  <tt class="py-name">uriThatWeDontReallyUse</tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-129" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step1_get_authorize_url" class="py-name" href="#" onclick="return doclink('link-129', 'step1_get_authorize_url', 'link-122');">step1_get_authorize_url</a></tt><tt class="py-op">(</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">)</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">  <tt id="link-130" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-130', 'credentials', 'link-38');">credentials</a></tt> <tt class="py-op">=</tt> <tt class="py-name">flow</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow.step2_exchange" class="py-name" href="#" onclick="return doclink('link-131', 'step2_exchange', 'link-124');">step2_exchange</a></tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt id="link-132" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-132', 'http', 'link-43');">http</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-133" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-133', 'credentials', 'link-38');">credentials</a></tt> </tt>
-</div><a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow"></a><div id="OAuth2WebServerFlow-def"><a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line"> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow-toggle" onclick="return toggle('OAuth2WebServerFlow');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a><tt class="py-op">(</tt><tt class="py-base-class">Flow</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2WebServerFlow-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OAuth2WebServerFlow-expanded"><a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">  <tt class="py-docstring">"""Does the Web Server Flow for OAuth 2.0.</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line"><tt class="py-docstring">  OAuth2Credentials objects may be safely pickled and unpickled.</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow.__init__"></a><div id="OAuth2WebServerFlow.__init__-def"><a name="L1000"></a><tt class="py-lineno">1000</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.__init__-toggle" onclick="return toggle('OAuth2WebServerFlow.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client_id</tt><tt class="py-op">,</tt> <tt class="py-param">client_secret</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">               <tt class="py-param">auth_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/auth'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">               <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">               <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2WebServerFlow.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.__init__-expanded"><a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for OAuth2WebServerFlow.</tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"><tt class="py-docstring">      client_id: string, client identifier.</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line"><tt class="py-docstring">      client_secret: string client secret.</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line"><tt class="py-docstring">      scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"><tt class="py-docstring">        requested.</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line"><tt class="py-docstring">      user_agent: string, HTTP User-Agent to provide for this application.</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line"><tt class="py-docstring">      auth_uri: string, URI for authorization endpoint. For convenience</tt> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line"><tt class="py-docstring">        defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"><tt class="py-docstring">      token_uri: string, URI for token endpoint. For convenience</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"><tt class="py-docstring">        defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-docstring">      **kwargs: dict, The keyword arguments are all optional and required</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"><tt class="py-docstring">                        parameters for the OAuth calls.</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">client_id</tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt> <tt class="py-op">=</tt> <tt class="py-name">client_secret</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">      <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">auth_uri</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">token_uri</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">        <tt class="py-string">'access_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'offline'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-</div><a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow.step1_get_authorize_url"></a><div id="OAuth2WebServerFlow.step1_get_authorize_url-def"><a name="L1033"></a><tt class="py-lineno">1033</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.step1_get_authorize_url-toggle" onclick="return toggle('OAuth2WebServerFlow.step1_get_authorize_url');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url">step1_get_authorize_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">redirect_uri</tt><tt class="py-op">=</tt><tt id="link-134" class="py-name"><a title="oauth2client.client.OOB_CALLBACK_URN" class="py-name" href="#" onclick="return doclink('link-134', 'OOB_CALLBACK_URN', 'link-16');">OOB_CALLBACK_URN</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2WebServerFlow.step1_get_authorize_url-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.step1_get_authorize_url-expanded"><a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns a URI to redirect to the provider.</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt class="py-docstring">      redirect_uri: string, Either the string 'urn:ietf:wg:oauth:2.0:oob' for</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"><tt class="py-docstring">          a non-web-based application, or a URI that handles the callback from</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line"><tt class="py-docstring">          the authorization server.</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line"><tt class="py-docstring">    If redirect_uri is 'urn:ietf:wg:oauth:2.0:oob' then pass in the</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line"><tt class="py-docstring">    generated verification code to step2_exchange,</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line"><tt class="py-docstring">    otherwise pass in the query parameters received</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"><tt class="py-docstring">    at the callback uri to step2_exchange.</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">redirect_uri</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">    <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line">        <tt class="py-string">'response_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">        <tt class="py-string">'client_id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">        <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">    <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">    <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">    <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-comment"># 4 is the index of the query part</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">    <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line"> </tt>
-<a name="OAuth2WebServerFlow.step2_exchange"></a><div id="OAuth2WebServerFlow.step2_exchange-def"><a name="L1060"></a><tt class="py-lineno">1060</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.step2_exchange-toggle" onclick="return toggle('OAuth2WebServerFlow.step2_exchange');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange">step2_exchange</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="OAuth2WebServerFlow.step2_exchange-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.step2_exchange-expanded"><a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">    <tt class="py-docstring">"""Exhanges a code for OAuth2Credentials.</tt> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line"><tt class="py-docstring">      code: string or dict, either the code as a string, or a dictionary</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"><tt class="py-docstring">        of the query parameters to the redirect_uri, which contains</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line"><tt class="py-docstring">        the code.</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, optional http instance to use to do the fetch</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"><tt class="py-docstring">      An OAuth2Credentials object that can be used to authorize requests.</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"><tt class="py-docstring">      FlowExchangeError if a problem occured exchanging the code for a</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line"><tt class="py-docstring">      refresh_token.</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'code'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">          <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">          <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'No code was supplied in the query parameters.'</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-135" class="py-name" targets="Class oauth2client.client.FlowExchangeError=oauth2client.client.FlowExchangeError-class.html"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-135', 'FlowExchangeError', 'link-135');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">        <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line"> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'authorization_code'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt class="py-string">'client_id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">        <tt class="py-string">'client_secret'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">        <tt class="py-string">'code'</tt><tt class="py-op">:</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">        <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">        <tt class="py-string">'content-type'</tt><tt class="py-op">:</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line"> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-136" class="py-name"><a title="apiclient.http
+<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-133" class="py-name"><a title="oauth2client.appengine.CredentialsModel.credentials" class="py-name" href="#" onclick="return doclink('link-133', 'credentials', 'link-38');">credentials</a></tt> </tt>
+</div><a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow"></a><div id="OAuth2WebServerFlow-def"><a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line"> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow-toggle" onclick="return toggle('OAuth2WebServerFlow');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html">OAuth2WebServerFlow</a><tt class="py-op">(</tt><tt class="py-base-class">Flow</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2WebServerFlow-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="OAuth2WebServerFlow-expanded"><a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">  <tt class="py-docstring">"""Does the Web Server Flow for OAuth 2.0.</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line"><tt class="py-docstring">  OAuth2Credentials objects may be safely pickled and unpickled.</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow.__init__"></a><div id="OAuth2WebServerFlow.__init__-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.__init__-toggle" onclick="return toggle('OAuth2WebServerFlow.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">client_id</tt><tt class="py-op">,</tt> <tt class="py-param">client_secret</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">user_agent</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">               <tt class="py-param">auth_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/auth'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">               <tt class="py-param">token_uri</tt><tt class="py-op">=</tt><tt class="py-string">'https://accounts.google.com/o/oauth2/token'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">               <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2WebServerFlow.__init__-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.__init__-expanded"><a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">    <tt class="py-docstring">"""Constructor for OAuth2WebServerFlow.</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line"><tt class="py-docstring">      client_id: string, client identifier.</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line"><tt class="py-docstring">      client_secret: string client secret.</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line"><tt class="py-docstring">      scope: string or list of strings, scope(s) of the credentials being</tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"><tt class="py-docstring">        requested.</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"><tt class="py-docstring">      user_agent: string, HTTP User-Agent to provide for this application.</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-docstring">      auth_uri: string, URI for authorization endpoint. For convenience</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"><tt class="py-docstring">        defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"><tt class="py-docstring">      token_uri: string, URI for token endpoint. For convenience</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"><tt class="py-docstring">        defaults to Google's endpoints but any OAuth 2.0 provider can be used.</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line"><tt class="py-docstring">      **kwargs: dict, The keyword arguments are all optional and required</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line"><tt class="py-docstring">                        parameters for the OAuth calls.</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt> <tt class="py-op">=</tt> <tt class="py-name">client_id</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt> <tt class="py-op">=</tt> <tt class="py-name">client_secret</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">type</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> <tt class="py-keyword">is</tt> <tt class="py-name">list</tt><tt class="py-op">:</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">      <tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">scope</tt><tt class="py-op">)</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt> <tt class="py-op">=</tt> <tt class="py-name">scope</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-op">=</tt> <tt class="py-name">user_agent</tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">auth_uri</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">token_uri</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">        <tt class="py-string">'access_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'offline'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+</div><a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow.step1_get_authorize_url"></a><div id="OAuth2WebServerFlow.step1_get_authorize_url-def"><a name="L1037"></a><tt class="py-lineno">1037</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.step1_get_authorize_url-toggle" onclick="return toggle('OAuth2WebServerFlow.step1_get_authorize_url');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#step1_get_authorize_url">step1_get_authorize_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">redirect_uri</tt><tt class="py-op">=</tt><tt id="link-134" class="py-name"><a title="oauth2client.client.OOB_CALLBACK_URN" class="py-name" href="#" onclick="return doclink('link-134', 'OOB_CALLBACK_URN', 'link-16');">OOB_CALLBACK_URN</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2WebServerFlow.step1_get_authorize_url-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.step1_get_authorize_url-expanded"><a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">    <tt class="py-docstring">"""Returns a URI to redirect to the provider.</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line"><tt class="py-docstring">      redirect_uri: string, Either the string 'urn:ietf:wg:oauth:2.0:oob' for</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line"><tt class="py-docstring">          a non-web-based application, or a URI that handles the callback from</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line"><tt class="py-docstring">          the authorization server.</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line"><tt class="py-docstring">    If redirect_uri is 'urn:ietf:wg:oauth:2.0:oob' then pass in the</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"><tt class="py-docstring">    generated verification code to step2_exchange,</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line"><tt class="py-docstring">    otherwise pass in the query parameters received</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-docstring">    at the callback uri to step2_exchange.</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">redirect_uri</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">    <tt class="py-name">query</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-string">'response_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'code'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">        <tt class="py-string">'client_id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">        <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">        <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">    <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">    <tt class="py-name">parts</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">auth_uri</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">    <tt class="py-name">query</tt><tt class="py-op">.</tt><tt class="py-name">update</tt><tt class="py-op">(</tt><tt class="py-name">dict</tt><tt class="py-op">(</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-comment"># 4 is the index of the query part</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">    <tt class="py-name">parts</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-name">query</tt><tt class="py-op">)</tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">urlunparse</tt><tt class="py-op">(</tt><tt class="py-name">parts</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"> </tt>
+<a name="OAuth2WebServerFlow.step2_exchange"></a><div id="OAuth2WebServerFlow.step2_exchange-def"><a name="L1064"></a><tt class="py-lineno">1064</tt> <a class="py-toggle" href="#" id="OAuth2WebServerFlow.step2_exchange-toggle" onclick="return toggle('OAuth2WebServerFlow.step2_exchange');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client.OAuth2WebServerFlow-class.html#step2_exchange">step2_exchange</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">code</tt><tt class="py-op">,</tt> <tt class="py-param">http</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="OAuth2WebServerFlow.step2_exchange-collapsed" style="display:none;" pad="++++" indent="++++++"></div><div id="OAuth2WebServerFlow.step2_exchange-expanded"><a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">    <tt class="py-docstring">"""Exhanges a code for OAuth2Credentials.</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"><tt class="py-docstring">      code: string or dict, either the code as a string, or a dictionary</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line"><tt class="py-docstring">        of the query parameters to the redirect_uri, which contains</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"><tt class="py-docstring">        the code.</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"><tt class="py-docstring">      http: httplib2.Http, optional http instance to use to do the fetch</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line"><tt class="py-docstring">      An OAuth2Credentials object that can be used to authorize requests.</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"><tt class="py-docstring">    Raises:</tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line"><tt class="py-docstring">      FlowExchangeError if a problem occured exchanging the code for a</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line"><tt class="py-docstring">      refresh_token.</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line"> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">code</tt><tt class="py-op">,</tt> <tt class="py-name">unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'code'</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">code</tt><tt class="py-op">:</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">          <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">          <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'No code was supplied in the query parameters.'</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-135" class="py-name" targets="Class oauth2client.client.FlowExchangeError=oauth2client.client.FlowExchangeError-class.html"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-135', 'FlowExchangeError', 'link-135');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-name">code</tt><tt class="py-op">[</tt><tt class="py-string">'code'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line"> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">    <tt class="py-name">body</tt> <tt class="py-op">=</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt class="py-name">urlencode</tt><tt class="py-op">(</tt><tt class="py-op">{</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-string">'grant_type'</tt><tt class="py-op">:</tt> <tt class="py-string">'authorization_code'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">        <tt class="py-string">'client_id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt class="py-string">'client_secret'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">        <tt class="py-string">'code'</tt><tt class="py-op">:</tt> <tt class="py-name">code</tt><tt class="py-op">,</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">        <tt class="py-string">'redirect_uri'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">redirect_uri</tt><tt class="py-op">,</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt class="py-string">'scope'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">        <tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">    <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt class="py-string">'content-type'</tt><tt class="py-op">:</tt> <tt class="py-string">'application/x-www-form-urlencoded'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line"> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">      <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt class="py-string">'user-agent'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line"> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-136" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-136', 'http', 'link-43');">http</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">      <tt id="link-137" class="py-name"><a title="apiclient.http
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">      <tt id="link-137" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-137', 'http', 'link-43');">http</a></tt> <tt class="py-op">=</tt> <tt class="py-name">httplib2</tt><tt class="py-op">.</tt><tt class="py-name">Http</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-138" class="py-name"><a title="apiclient.http
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">    <tt class="py-name">resp</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-138" class="py-name"><a title="apiclient.http
 oauth2client.appengine.OAuth2Decorator.http" class="py-name" href="#" onclick="return doclink('link-138', 'http', 'link-43');">http</a></tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="apiclient.http.HttpMock.request
 apiclient.http.HttpMockSequence.request
 apiclient.model.BaseModel.request
 apiclient.model.Model.request" class="py-name" href="#" onclick="return doclink('link-139', 'request', 'link-44');">request</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">method</tt><tt class="py-op">=</tt><tt class="py-string">'POST'</tt><tt class="py-op">,</tt> <tt class="py-name">body</tt><tt class="py-op">=</tt><tt class="py-name">body</tt><tt class="py-op">,</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">                                 <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-140" class="py-name" targets="Function oauth2client.client._parse_exchange_token_response()=oauth2client.client-module.html#_parse_exchange_token_response"><a title="oauth2client.client._parse_exchange_token_response" class="py-name" href="#" onclick="return doclink('link-140', '_parse_exchange_token_response', 'link-140');">_parse_exchange_token_response</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'access_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">      <tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">      <tt class="py-name">refresh_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">                                 <tt class="py-name">headers</tt><tt class="py-op">=</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">    <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-140" class="py-name" targets="Function oauth2client.client._parse_exchange_token_response()=oauth2client.client-module.html#_parse_exchange_token_response"><a title="oauth2client.client._parse_exchange_token_response" class="py-name" href="#" onclick="return doclink('link-140', '_parse_exchange_token_response', 'link-140');">_parse_exchange_token_response</a></tt><tt class="py-op">(</tt><tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt> <tt class="py-op">==</tt> <tt class="py-number">200</tt> <tt class="py-keyword">and</tt> <tt class="py-string">'access_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">      <tt class="py-name">access_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'access_token'</tt><tt class="py-op">]</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">      <tt class="py-name">refresh_token</tt> <tt class="py-op">=</tt> <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-141', 'get', 'link-17');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'refresh_token'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">      <tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'expires_in'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">        <tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">utcnow</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">timedelta</tt><tt class="py-op">(</tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">            <tt class="py-name">seconds</tt><tt class="py-op">=</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'expires_in'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line"> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'id_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">        <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-142" class="py-name" targets="Function oauth2client.client._extract_id_token()=oauth2client.client-module.html#_extract_id_token"><a title="oauth2client.client._extract_id_token" class="py-name" href="#" onclick="return doclink('link-142', '_extract_id_token', 'link-142');">_extract_id_token</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line"> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">      <tt id="link-143" class="py-name"><a title="apiclient.discovery.logger
+<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">      <tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'expires_in'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">        <tt class="py-name">token_expiry</tt> <tt class="py-op">=</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">utcnow</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-name">datetime</tt><tt class="py-op">.</tt><tt class="py-name">timedelta</tt><tt class="py-op">(</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">            <tt class="py-name">seconds</tt><tt class="py-op">=</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'expires_in'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line"> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'id_token'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">        <tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-142" class="py-name" targets="Function oauth2client.client._extract_id_token()=oauth2client.client-module.html#_extract_id_token"><a title="oauth2client.client._extract_id_token" class="py-name" href="#" onclick="return doclink('link-142', '_extract_id_token', 'link-142');">_extract_id_token</a></tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'id_token'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line"> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">      <tt id="link-143" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-143', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Successfully retrieved access token: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-144" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-144', 'OAuth2Credentials', 'link-64');">OAuth2Credentials</a></tt><tt class="py-op">(</tt><tt class="py-name">access_token</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">                               <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> <tt class="py-name">refresh_token</tt><tt class="py-op">,</tt> <tt class="py-name">token_expiry</tt><tt class="py-op">,</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">                               <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">                               <tt class="py-name">id_token</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="apiclient.schema.Schemas.get
+<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">      <tt class="py-keyword">return</tt> <tt id="link-144" class="py-name"><a title="oauth2client.client.OAuth2Credentials" class="py-name" href="#" onclick="return doclink('link-144', 'OAuth2Credentials', 'link-64');">OAuth2Credentials</a></tt><tt class="py-op">(</tt><tt class="py-name">access_token</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_id</tt><tt class="py-op">,</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">                               <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">client_secret</tt><tt class="py-op">,</tt> <tt class="py-name">refresh_token</tt><tt class="py-op">,</tt> <tt class="py-name">token_expiry</tt><tt class="py-op">,</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">                               <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token_uri</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">user_agent</tt><tt class="py-op">,</tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">                               <tt class="py-name">id_token</tt><tt class="py-op">=</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="apiclient.schema.Schemas.get
 oauth2client.appengine.OAuth2Handler.get
 oauth2client.client.MemoryCache.get
 oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-145', 'get', 'link-17');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'id_token'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">      <tt id="link-146" class="py-name"><a title="apiclient.discovery.logger
+<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">      <tt id="link-146" class="py-name"><a title="apiclient.discovery.logger
 oauth2client.appengine.logger
 oauth2client.client.logger
 oauth2client.crypt.logger
 oauth2client.locked_file.logger
 oauth2client.multistore_file.logger" class="py-name" href="#" onclick="return doclink('link-146', 'logger', 'link-13');">logger</a></tt><tt class="py-op">.</tt><tt class="py-name">info</tt><tt class="py-op">(</tt><tt class="py-string">'Failed to retrieve access token: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt class="py-comment"># you never know what those providers got to say</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">        <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">        <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'Invalid response: %s.'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-147" class="py-name"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-147', 'FlowExchangeError', 'link-135');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"> </tt>
-<a name="flow_from_clientsecrets"></a><div id="flow_from_clientsecrets-def"><a name="L1133"></a><tt class="py-lineno">1133</tt> <a class="py-toggle" href="#" id="flow_from_clientsecrets-toggle" onclick="return toggle('flow_from_clientsecrets');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#flow_from_clientsecrets">flow_from_clientsecrets</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="flow_from_clientsecrets-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="flow_from_clientsecrets-expanded"><a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">  <tt class="py-docstring">"""Create a Flow from a clientsecrets file.</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"><tt class="py-docstring">  Will create the right kind of Flow based on the contents of the clientsecrets</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line"><tt class="py-docstring">  file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"><tt class="py-docstring">    filename: string, File name of client secrets.</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) to request.</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line"><tt class="py-docstring">    message: string, A friendly string to display to the user if the</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line"><tt class="py-docstring">      clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line"><tt class="py-docstring">      sys.exit will be called in the case of an error. If message in not</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line"><tt class="py-docstring">      provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"><tt class="py-docstring">    A Flow object.</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"><tt class="py-docstring">    UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-docstring">    clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-docstring">      invalid.</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line">    <tt class="py-name">client_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</tt> <tt class="py-op">=</tt> <tt id="link-148" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-148', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Function oauth2client.clientsecrets.loadfile()=oauth2client.clientsecrets-module.html#loadfile"><a title="oauth2client.clientsecrets.loadfile" class="py-name" href="#" onclick="return doclink('link-149', 'loadfile', 'link-149');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
-oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-150', 'filename', 'link-128');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-151" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-151', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_WEB=oauth2client.clientsecrets-module.html#TYPE_WEB"><a title="oauth2client.clientsecrets.TYPE_WEB" class="py-name" href="#" onclick="return doclink('link-152', 'TYPE_WEB', 'link-152');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-153" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-153', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_INSTALLED=oauth2client.clientsecrets-module.html#TYPE_INSTALLED"><a title="oauth2client.clientsecrets.TYPE_INSTALLED" class="py-name" href="#" onclick="return doclink('link-154', 'TYPE_INSTALLED', 'link-154');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-155" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-155', 'OAuth2WebServerFlow', 'link-121');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_id'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_secret'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">            <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-comment"># user_agent</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'auth_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">  <tt class="py-keyword">except</tt> <tt id="link-156" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-156', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Class oauth2client.appengine.InvalidClientSecretsError=oauth2client.appengine.InvalidClientSecretsError-class.html,Class oauth2client.clientsecrets.InvalidClientSecretsError=oauth2client.clientsecrets.InvalidClientSecretsError-class.html"><a title="oauth2client.appengine.InvalidClientSecretsError
+<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-string">'error'</tt> <tt class="py-keyword">in</tt> <tt class="py-name">d</tt><tt class="py-op">:</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">        <tt class="py-comment"># you never know what those providers got to say</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">        <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">[</tt><tt class="py-string">'error'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">      <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">        <tt class="py-name">error_msg</tt> <tt class="py-op">=</tt> <tt class="py-string">'Invalid response: %s.'</tt> <tt class="py-op">%</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">resp</tt><tt class="py-op">.</tt><tt class="py-name">status</tt><tt class="py-op">)</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> <tt id="link-147" class="py-name"><a title="oauth2client.client.FlowExchangeError" class="py-name" href="#" onclick="return doclink('link-147', 'FlowExchangeError', 'link-135');">FlowExchangeError</a></tt><tt class="py-op">(</tt><tt class="py-name">error_msg</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"> </tt>
+<a name="flow_from_clientsecrets"></a><div id="flow_from_clientsecrets-def"><a name="L1137"></a><tt class="py-lineno">1137</tt> <a class="py-toggle" href="#" id="flow_from_clientsecrets-toggle" onclick="return toggle('flow_from_clientsecrets');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.client-module.html#flow_from_clientsecrets">flow_from_clientsecrets</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">scope</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">cache</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="flow_from_clientsecrets-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="flow_from_clientsecrets-expanded"><a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">  <tt class="py-docstring">"""Create a Flow from a clientsecrets file.</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"><tt class="py-docstring">  Will create the right kind of Flow based on the contents of the clientsecrets</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"><tt class="py-docstring">  file or will raise InvalidClientSecretsError for unknown types of Flows.</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line"><tt class="py-docstring">    filename: string, File name of client secrets.</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line"><tt class="py-docstring">    scope: string or list of strings, scope(s) to request.</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"><tt class="py-docstring">    message: string, A friendly string to display to the user if the</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line"><tt class="py-docstring">      clientsecrets file is missing or invalid. If message is provided then</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"><tt class="py-docstring">      sys.exit will be called in the case of an error. If message in not</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line"><tt class="py-docstring">      provided then clientsecrets.InvalidClientSecretsError will be raised.</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"><tt class="py-docstring">    cache: An optional cache service client that implements get() and set() </tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"><tt class="py-docstring">      methods. See clientsecrets.loadfile() for details.</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-docstring">    A Flow object.</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"><tt class="py-docstring">    UnknownClientSecretsFlowError if the file describes an unknown kind of Flow.</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"><tt class="py-docstring">    clientsecrets.InvalidClientSecretsError if the clientsecrets file is</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"><tt class="py-docstring">      invalid.</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">    <tt class="py-name">client_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</tt> <tt class="py-op">=</tt> <tt id="link-148" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-148', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-149" class="py-name" targets="Function oauth2client.clientsecrets.loadfile()=oauth2client.clientsecrets-module.html#loadfile"><a title="oauth2client.clientsecrets.loadfile" class="py-name" href="#" onclick="return doclink('link-149', 'loadfile', 'link-149');">loadfile</a></tt><tt class="py-op">(</tt><tt id="link-150" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-150', 'filename', 'link-128');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">cache</tt><tt class="py-op">=</tt><tt class="py-name">cache</tt><tt class="py-op">)</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">client_type</tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt id="link-151" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-151', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-152" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_WEB=oauth2client.clientsecrets-module.html#TYPE_WEB"><a title="oauth2client.clientsecrets.TYPE_WEB" class="py-name" href="#" onclick="return doclink('link-152', 'TYPE_WEB', 'link-152');">TYPE_WEB</a></tt><tt class="py-op">,</tt> <tt id="link-153" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-153', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Variable oauth2client.clientsecrets.TYPE_INSTALLED=oauth2client.clientsecrets-module.html#TYPE_INSTALLED"><a title="oauth2client.clientsecrets.TYPE_INSTALLED" class="py-name" href="#" onclick="return doclink('link-154', 'TYPE_INSTALLED', 'link-154');">TYPE_INSTALLED</a></tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-155" class="py-name"><a title="oauth2client.client.OAuth2WebServerFlow" class="py-name" href="#" onclick="return doclink('link-155', 'OAuth2WebServerFlow', 'link-121');">OAuth2WebServerFlow</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_id'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'client_secret'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">            <tt class="py-name">scope</tt><tt class="py-op">,</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-comment"># user_agent</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'auth_uri'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">            <tt class="py-name">client_info</tt><tt class="py-op">[</tt><tt class="py-string">'token_uri'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">  <tt class="py-keyword">except</tt> <tt id="link-156" class="py-name"><a title="oauth2client.clientsecrets" class="py-name" href="#" onclick="return doclink('link-156', 'clientsecrets', 'link-0');">clientsecrets</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Class oauth2client.appengine.InvalidClientSecretsError=oauth2client.appengine.InvalidClientSecretsError-class.html,Class oauth2client.clientsecrets.InvalidClientSecretsError=oauth2client.clientsecrets.InvalidClientSecretsError-class.html"><a title="oauth2client.appengine.InvalidClientSecretsError
 oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-157', 'InvalidClientSecretsError', 'link-157');">InvalidClientSecretsError</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">message</tt><tt class="py-op">:</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">      <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exit</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-158" class="py-name" targets="Class oauth2client.client.UnknownClientSecretsFlowError=oauth2client.client.UnknownClientSecretsFlowError-class.html"><a title="oauth2client.client.UnknownClientSecretsFlowError" class="py-name" href="#" onclick="return doclink('link-158', 'UnknownClientSecretsFlowError', 'link-158');">UnknownClientSecretsFlowError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">        <tt class="py-string">'This OAuth 2.0 flow is unsupported: "%s"'</tt> <tt class="py-op">*</tt> <tt class="py-name">client_type</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">message</tt><tt class="py-op">:</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line">      <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exit</tt><tt class="py-op">(</tt><tt class="py-name">message</tt><tt class="py-op">)</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">      <tt class="py-keyword">raise</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">  <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-158" class="py-name" targets="Class oauth2client.client.UnknownClientSecretsFlowError=oauth2client.client.UnknownClientSecretsFlowError-class.html"><a title="oauth2client.client.UnknownClientSecretsFlowError" class="py-name" href="#" onclick="return doclink('link-158', 'UnknownClientSecretsFlowError', 'link-158');">UnknownClientSecretsFlowError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">        <tt class="py-string">'This OAuth 2.0 flow is unsupported: "%s"'</tt> <tt class="py-op">*</tt> <tt class="py-name">client_type</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -1542,7 +1548,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AccessTokenCredentials-class.html b/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
index 2e51e82..04f10ec 100644
--- a/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenCredentials-class.html
@@ -431,7 +431,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:00 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html b/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
index a1bb8b0..ea5cee9 100644
--- a/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenCredentialsError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html b/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
index ee9952b..31666f5 100644
--- a/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
+++ b/docs/epy/oauth2client.client.AccessTokenRefreshError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.AssertionCredentials-class.html b/docs/epy/oauth2client.client.AssertionCredentials-class.html
index 965bbea..52a2ff1 100644
--- a/docs/epy/oauth2client.client.AssertionCredentials-class.html
+++ b/docs/epy/oauth2client.client.AssertionCredentials-class.html
@@ -374,7 +374,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Credentials-class.html b/docs/epy/oauth2client.client.Credentials-class.html
index 9a9deda..32c9546 100644
--- a/docs/epy/oauth2client.client.Credentials-class.html
+++ b/docs/epy/oauth2client.client.Credentials-class.html
@@ -528,7 +528,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Error-class.html b/docs/epy/oauth2client.client.Error-class.html
index ca8c286..ca8bd25 100644
--- a/docs/epy/oauth2client.client.Error-class.html
+++ b/docs/epy/oauth2client.client.Error-class.html
@@ -171,7 +171,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Flow-class.html b/docs/epy/oauth2client.client.Flow-class.html
index b9bb8d6..ee9446c 100644
--- a/docs/epy/oauth2client.client.Flow-class.html
+++ b/docs/epy/oauth2client.client.Flow-class.html
@@ -153,7 +153,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.FlowExchangeError-class.html b/docs/epy/oauth2client.client.FlowExchangeError-class.html
index cc7eeb8..2e64abe 100644
--- a/docs/epy/oauth2client.client.FlowExchangeError-class.html
+++ b/docs/epy/oauth2client.client.FlowExchangeError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.MemoryCache-class.html b/docs/epy/oauth2client.client.MemoryCache-class.html
index 7ae709f..0159c3c 100644
--- a/docs/epy/oauth2client.client.MemoryCache-class.html
+++ b/docs/epy/oauth2client.client.MemoryCache-class.html
@@ -266,7 +266,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:12 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.OAuth2Credentials-class.html b/docs/epy/oauth2client.client.OAuth2Credentials-class.html
index 3deb7fb..66d4e12 100644
--- a/docs/epy/oauth2client.client.OAuth2Credentials-class.html
+++ b/docs/epy/oauth2client.client.OAuth2Credentials-class.html
@@ -855,7 +855,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html b/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
index 046f5ad..ab64563 100644
--- a/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
+++ b/docs/epy/oauth2client.client.OAuth2WebServerFlow-class.html
@@ -350,7 +350,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:01 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html b/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html
index 4acca28..c1c4f59 100644
--- a/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html
+++ b/docs/epy/oauth2client.client.SignedJwtAssertionCredentials-class.html
@@ -426,7 +426,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.Storage-class.html b/docs/epy/oauth2client.client.Storage-class.html
index f15c204..9c9db6f 100644
--- a/docs/epy/oauth2client.client.Storage-class.html
+++ b/docs/epy/oauth2client.client.Storage-class.html
@@ -536,7 +536,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html b/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
index 98522a2..c820dbc 100644
--- a/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
+++ b/docs/epy/oauth2client.client.UnknownClientSecretsFlowError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html b/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
index 45cb457..e9f319f 100644
--- a/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
+++ b/docs/epy/oauth2client.client.VerifyJwtTokenError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets-module.html b/docs/epy/oauth2client.clientsecrets-module.html
index e5b4696..65e34c1 100644
--- a/docs/epy/oauth2client.clientsecrets-module.html
+++ b/docs/epy/oauth2client.clientsecrets-module.html
@@ -164,13 +164,31 @@
       
     </td>
   </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="_loadfile"></a><span class="summary-sig-name">_loadfile</span>(<span class="summary-sig-arg">filename</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#_loadfile">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td><span class="summary-sig"><a name="loadfile"></a><span class="summary-sig-name">loadfile</span>(<span class="summary-sig-arg">filename</span>)</span></td>
+          <td><span class="summary-sig"><a href="oauth2client.clientsecrets-module.html#loadfile" class="summary-sig-name">loadfile</a>(<span class="summary-sig-arg">filename</span>,
+        <span class="summary-sig-arg">cache</span>=<span class="summary-sig-default">None</span>)</span><br />
+      Loading of client_secrets JSON file, optionally backed by a cache.</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#loadfile">source&nbsp;code</a></span>
             
@@ -235,6 +253,76 @@
     </td>
   </tr>
 </table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Function Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-FunctionDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="loadfile"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">loadfile</span>(<span class="sig-arg">filename</span>,
+        <span class="sig-arg">cache</span>=<span class="sig-default">None</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="oauth2client.clientsecrets-pysrc.html#loadfile">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <pre class="literalblock">
+Loading of client_secrets JSON file, optionally backed by a cache.
+
+Typical cache storage would be App Engine memcache service,
+but you can pass in any other cache client that implements
+these methods:
+  - get(key, namespace=ns)
+  - set(key, value, namespace=ns)
+
+Usage:
+  # without caching
+  client_type, client_info = loadfile('secrets.json')
+  # using App Engine memcache service
+  from google.appengine.api import memcache
+  client_type, client_info = loadfile('secrets.json', cache=memcache)
+
+Args:
+  filename: string, Path to a client_secrets.json file on a filesystem.
+  cache: An optional cache service client that implements get() and set() 
+    methods. If not specified, the file is always being loaded from
+    a filesystem.
+
+Raises:
+  InvalidClientSecretsError: In case of a validation error or some 
+    I/O failure. Can happen only on cache miss.
+
+Returns:
+  (client_type, client_info) tuple, as _loadfile() normally would. 
+  JSON contents is validated only during first load. Cache hits are not
+  validated.
+
+</pre>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
+<br />
 <!-- ==================== VARIABLES DETAILS ==================== -->
 <a name="section-VariablesDetails"></a>
 <table class="details" border="1" cellpadding="3"
@@ -303,7 +391,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets-pysrc.html b/docs/epy/oauth2client.clientsecrets-pysrc.html
index d36ecb5..c235115 100644
--- a/docs/epy/oauth2client.clientsecrets-pysrc.html
+++ b/docs/epy/oauth2client.clientsecrets-pysrc.html
@@ -152,8 +152,8 @@
 <a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-16" class="py-name"><a title="oauth2client.clientsecrets._validate_clientsecrets" class="py-name" href="#" onclick="return doclink('link-16', '_validate_clientsecrets', 'link-14');">_validate_clientsecrets</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"> </tt>
 <a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
-<a name="loadfile"></a><div id="loadfile-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="loadfile-toggle" onclick="return toggle('loadfile');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.clientsecrets-module.html#loadfile">loadfile</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="loadfile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="loadfile-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="_loadfile"></a><div id="_loadfile-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="_loadfile-toggle" onclick="return toggle('_loadfile');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.clientsecrets-module.html#_loadfile">_loadfile</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_loadfile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_loadfile-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">  <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">    <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name" targets="Module oauth2client.file=oauth2client.file-module.html"><a title="oauth2client.file" class="py-name" href="#" onclick="return doclink('link-17', 'file', 'link-17');">file</a></tt><tt class="py-op">(</tt><tt id="link-18" class="py-name" targets="Method oauth2client.locked_file.LockedFile.filename()=oauth2client.locked_file.LockedFile-class.html#filename,Method oauth2client.locked_file._Opener.filename()=oauth2client.locked_file._Opener-class.html#filename"><a title="oauth2client.locked_file.LockedFile.filename
 oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-18', 'filename', 'link-18');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
 <a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
@@ -165,7 +165,59 @@
 oauth2client.clientsecrets.InvalidClientSecretsError" class="py-name" href="#" onclick="return doclink('link-20', 'InvalidClientSecretsError', 'link-6');">InvalidClientSecretsError</a></tt><tt class="py-op">(</tt><tt class="py-string">'File not found: "%s"'</tt> <tt class="py-op">%</tt> <tt id="link-21" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
 oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-21', 'filename', 'link-18');">filename</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt id="link-22" class="py-name"><a title="oauth2client.clientsecrets._validate_clientsecrets" class="py-name" href="#" onclick="return doclink('link-22', '_validate_clientsecrets', 'link-14');">_validate_clientsecrets</a></tt><tt class="py-op">(</tt><tt class="py-name">obj</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+</div><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
+<a name="loadfile"></a><div id="loadfile-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="loadfile-toggle" onclick="return toggle('loadfile');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="oauth2client.clientsecrets-module.html#loadfile">loadfile</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">,</tt> <tt class="py-param">cache</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="loadfile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="loadfile-expanded"><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">  <tt class="py-docstring">"""Loading of client_secrets JSON file, optionally backed by a cache.</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring">  Typical cache storage would be App Engine memcache service,</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring">  but you can pass in any other cache client that implements</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">  these methods:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">    - get(key, namespace=ns)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">    - set(key, value, namespace=ns)</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">  Usage:</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line"><tt class="py-docstring">    # without caching</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">    client_type, client_info = loadfile('secrets.json')</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">    # using App Engine memcache service</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">    from google.appengine.api import memcache</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">    client_type, client_info = loadfile('secrets.json', cache=memcache)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">    filename: string, Path to a client_secrets.json file on a filesystem.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">    cache: An optional cache service client that implements get() and set() </tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">      methods. If not specified, the file is always being loaded from</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-docstring">      a filesystem.</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-docstring">    InvalidClientSecretsError: In case of a validation error or some </tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"><tt class="py-docstring">      I/O failure. Can happen only on cache miss.</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">    (client_type, client_info) tuple, as _loadfile() normally would. </tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">    JSON contents is validated only during first load. Cache hits are not</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">    validated.</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">  <tt class="py-name">_SECRET_NAMESPACE</tt> <tt class="py-op">=</tt> <tt class="py-string">'oauth2client:secrets#ns'</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">cache</tt><tt class="py-op">:</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-23" class="py-name" targets="Function oauth2client.clientsecrets._loadfile()=oauth2client.clientsecrets-module.html#_loadfile"><a title="oauth2client.clientsecrets._loadfile" class="py-name" href="#" onclick="return doclink('link-23', '_loadfile', 'link-23');">_loadfile</a></tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-24', 'filename', 'link-18');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">  <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">cache</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name" targets="Method apiclient.schema.Schemas.get()=apiclient.schema.Schemas-class.html#get,Method oauth2client.appengine.OAuth2Handler.get()=oauth2client.appengine.OAuth2Handler-class.html#get,Method oauth2client.client.MemoryCache.get()=oauth2client.client.MemoryCache-class.html#get,Method oauth2client.client.Storage.get()=oauth2client.client.Storage-class.html#get"><a title="apiclient.schema.Schemas.get
+oauth2client.appengine.OAuth2Handler.get
+oauth2client.client.MemoryCache.get
+oauth2client.client.Storage.get" class="py-name" href="#" onclick="return doclink('link-25', 'get', 'link-25');">get</a></tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-26', 'filename', 'link-18');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt class="py-name">_SECRET_NAMESPACE</tt><tt class="py-op">)</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt class="py-name">obj</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-name">client_type</tt><tt class="py-op">,</tt> <tt class="py-name">client_info</tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name"><a title="oauth2client.clientsecrets._loadfile" class="py-name" href="#" onclick="return doclink('link-27', '_loadfile', 'link-23');">_loadfile</a></tt><tt class="py-op">(</tt><tt id="link-28" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-28', 'filename', 'link-18');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-name">client_type</tt><tt class="py-op">:</tt> <tt class="py-name">client_info</tt> <tt class="py-op">}</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">    <tt class="py-name">cache</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name" targets="Method oauth2client.client.MemoryCache.set()=oauth2client.client.MemoryCache-class.html#set"><a title="oauth2client.client.MemoryCache.set" class="py-name" href="#" onclick="return doclink('link-29', 'set', 'link-29');">set</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="oauth2client.locked_file.LockedFile.filename
+oauth2client.locked_file._Opener.filename" class="py-name" href="#" onclick="return doclink('link-30', 'filename', 'link-18');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">obj</tt><tt class="py-op">,</tt> <tt class="py-name">namespace</tt><tt class="py-op">=</tt><tt class="py-name">_SECRET_NAMESPACE</tt><tt class="py-op">)</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">next</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -195,7 +247,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets.Error-class.html b/docs/epy/oauth2client.clientsecrets.Error-class.html
index c8130cd..a92d96d 100644
--- a/docs/epy/oauth2client.clientsecrets.Error-class.html
+++ b/docs/epy/oauth2client.clientsecrets.Error-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html b/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
index 800e7cb..2cd20e9 100644
--- a/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
+++ b/docs/epy/oauth2client.clientsecrets.InvalidClientSecretsError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt-module.html b/docs/epy/oauth2client.crypt-module.html
index cc8aa69..4617776 100644
--- a/docs/epy/oauth2client.crypt-module.html
+++ b/docs/epy/oauth2client.crypt-module.html
@@ -362,7 +362,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt-pysrc.html b/docs/epy/oauth2client.crypt-pysrc.html
index ac2e600..6a79439 100644
--- a/docs/epy/oauth2client.crypt-pysrc.html
+++ b/docs/epy/oauth2client.crypt-pysrc.html
@@ -353,7 +353,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt.AppIdentityError-class.html b/docs/epy/oauth2client.crypt.AppIdentityError-class.html
index a69e603..1e110c7 100644
--- a/docs/epy/oauth2client.crypt.AppIdentityError-class.html
+++ b/docs/epy/oauth2client.crypt.AppIdentityError-class.html
@@ -161,7 +161,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:02 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt.Signer-class.html b/docs/epy/oauth2client.crypt.Signer-class.html
index fbb0a96..3264dae 100644
--- a/docs/epy/oauth2client.crypt.Signer-class.html
+++ b/docs/epy/oauth2client.crypt.Signer-class.html
@@ -335,7 +335,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.crypt.Verifier-class.html b/docs/epy/oauth2client.crypt.Verifier-class.html
index 8b256cf..6b74711 100644
--- a/docs/epy/oauth2client.crypt.Verifier-class.html
+++ b/docs/epy/oauth2client.crypt.Verifier-class.html
@@ -340,7 +340,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:13 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm-module.html b/docs/epy/oauth2client.django_orm-module.html
index 33e3c8c..9d5b662 100644
--- a/docs/epy/oauth2client.django_orm-module.html
+++ b/docs/epy/oauth2client.django_orm-module.html
@@ -154,7 +154,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm-pysrc.html b/docs/epy/oauth2client.django_orm-pysrc.html
index e2d2548..c41807c 100644
--- a/docs/epy/oauth2client.django_orm-pysrc.html
+++ b/docs/epy/oauth2client.django_orm-pysrc.html
@@ -210,7 +210,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm.CredentialsField-class.html b/docs/epy/oauth2client.django_orm.CredentialsField-class.html
index 128f250..daa25ab 100644
--- a/docs/epy/oauth2client.django_orm.CredentialsField-class.html
+++ b/docs/epy/oauth2client.django_orm.CredentialsField-class.html
@@ -445,7 +445,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm.FlowField-class.html b/docs/epy/oauth2client.django_orm.FlowField-class.html
index e638127..f01acc1 100644
--- a/docs/epy/oauth2client.django_orm.FlowField-class.html
+++ b/docs/epy/oauth2client.django_orm.FlowField-class.html
@@ -445,7 +445,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.django_orm.Storage-class.html b/docs/epy/oauth2client.django_orm.Storage-class.html
index f80f7c2..69a9057 100644
--- a/docs/epy/oauth2client.django_orm.Storage-class.html
+++ b/docs/epy/oauth2client.django_orm.Storage-class.html
@@ -374,7 +374,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.file-module.html b/docs/epy/oauth2client.file-module.html
index 73e958b..6a80195 100644
--- a/docs/epy/oauth2client.file-module.html
+++ b/docs/epy/oauth2client.file-module.html
@@ -139,7 +139,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.file-pysrc.html b/docs/epy/oauth2client.file-pysrc.html
index c705ec0..a7654c9 100644
--- a/docs/epy/oauth2client.file-pysrc.html
+++ b/docs/epy/oauth2client.file-pysrc.html
@@ -201,7 +201,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:16 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.file.Storage-class.html b/docs/epy/oauth2client.file.Storage-class.html
index e4c4b8d..2126366 100644
--- a/docs/epy/oauth2client.file.Storage-class.html
+++ b/docs/epy/oauth2client.file.Storage-class.html
@@ -490,7 +490,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file-module.html b/docs/epy/oauth2client.locked_file-module.html
index 683f106..07b8051 100644
--- a/docs/epy/oauth2client.locked_file-module.html
+++ b/docs/epy/oauth2client.locked_file-module.html
@@ -195,7 +195,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file-pysrc.html b/docs/epy/oauth2client.locked_file-pysrc.html
index f71dcda..7bbba4c 100644
--- a/docs/epy/oauth2client.locked_file-pysrc.html
+++ b/docs/epy/oauth2client.locked_file-pysrc.html
@@ -459,7 +459,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:06 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html b/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
index af6ef24..797047c 100644
--- a/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
+++ b/docs/epy/oauth2client.locked_file.AlreadyLockedException-class.html
@@ -166,7 +166,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file.LockedFile-class.html b/docs/epy/oauth2client.locked_file.LockedFile-class.html
index 6fcf1a5..6ca40de 100644
--- a/docs/epy/oauth2client.locked_file.LockedFile-class.html
+++ b/docs/epy/oauth2client.locked_file.LockedFile-class.html
@@ -346,7 +346,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:03 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file._FcntlOpener-class.html b/docs/epy/oauth2client.locked_file._FcntlOpener-class.html
index d48ecba..d95aff0 100644
--- a/docs/epy/oauth2client.locked_file._FcntlOpener-class.html
+++ b/docs/epy/oauth2client.locked_file._FcntlOpener-class.html
@@ -273,7 +273,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file._Opener-class.html b/docs/epy/oauth2client.locked_file._Opener-class.html
index 62ab7ed..3f7a0c6 100644
--- a/docs/epy/oauth2client.locked_file._Opener-class.html
+++ b/docs/epy/oauth2client.locked_file._Opener-class.html
@@ -368,7 +368,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.locked_file._PosixOpener-class.html b/docs/epy/oauth2client.locked_file._PosixOpener-class.html
index 9ba60da..8968db8 100644
--- a/docs/epy/oauth2client.locked_file._PosixOpener-class.html
+++ b/docs/epy/oauth2client.locked_file._PosixOpener-class.html
@@ -293,7 +293,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file-module.html b/docs/epy/oauth2client.multistore_file-module.html
index 54a5121..5dc2c7b 100644
--- a/docs/epy/oauth2client.multistore_file-module.html
+++ b/docs/epy/oauth2client.multistore_file-module.html
@@ -294,7 +294,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file-pysrc.html b/docs/epy/oauth2client.multistore_file-pysrc.html
index bbde116..e7e3a6d 100644
--- a/docs/epy/oauth2client.multistore_file-pysrc.html
+++ b/docs/epy/oauth2client.multistore_file-pysrc.html
@@ -526,7 +526,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file.Error-class.html b/docs/epy/oauth2client.multistore_file.Error-class.html
index a2e3f37..a1c660c 100644
--- a/docs/epy/oauth2client.multistore_file.Error-class.html
+++ b/docs/epy/oauth2client.multistore_file.Error-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html b/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
index e6216fb..c84e998 100644
--- a/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
+++ b/docs/epy/oauth2client.multistore_file.NewerCredentialStoreError-class.html
@@ -167,7 +167,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file._MultiStore-class.html b/docs/epy/oauth2client.multistore_file._MultiStore-class.html
index 0bac801..4340c57 100644
--- a/docs/epy/oauth2client.multistore_file._MultiStore-class.html
+++ b/docs/epy/oauth2client.multistore_file._MultiStore-class.html
@@ -756,7 +756,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:14 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html b/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
index 047ee3d..d397cab 100644
--- a/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
+++ b/docs/epy/oauth2client.multistore_file._MultiStore._Storage-class.html
@@ -461,7 +461,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools-module.html b/docs/epy/oauth2client.tools-module.html
index eaa3c85..ccfa22d 100644
--- a/docs/epy/oauth2client.tools-module.html
+++ b/docs/epy/oauth2client.tools-module.html
@@ -244,7 +244,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:08 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:49:56 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools-pysrc.html b/docs/epy/oauth2client.tools-pysrc.html
index e9afcae..11f6c65 100644
--- a/docs/epy/oauth2client.tools-pysrc.html
+++ b/docs/epy/oauth2client.tools-pysrc.html
@@ -268,7 +268,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:16 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html b/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
index 273c9e4..32db6c4 100644
--- a/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
+++ b/docs/epy/oauth2client.tools.ClientRedirectHandler-class.html
@@ -310,7 +310,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:04 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/oauth2client.tools.ClientRedirectServer-class.html b/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
index 4858da5..5e8906d 100644
--- a/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
+++ b/docs/epy/oauth2client.tools.ClientRedirectServer-class.html
@@ -182,7 +182,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Thu Jul 12 10:44:15 2012
+    Generated by Epydoc 3.0.1 on Mon Jul 23 15:50:05 2012
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/toc-everything.html b/docs/epy/toc-everything.html
index 01f9fce..b4f890c 100644
--- a/docs/epy/toc-everything.html
+++ b/docs/epy/toc-everything.html
@@ -163,6 +163,9 @@
      >oauth2client.client.credentials_from_code</a><br />    <a target="mainFrame" href="oauth2client.client-module.html#flow_from_clientsecrets"
      >oauth2client.client.flow_from_clientsecrets</a><br />    <a target="mainFrame" href="oauth2client.client-module.html#verify_id_token"
      >oauth2client.client.verify_id_token</a><br />  <div class="private">
+    <a target="mainFrame" href="oauth2client.clientsecrets-module.html#_loadfile"
+     >oauth2client.clientsecrets._loadfile</a><br />  </div>
+  <div class="private">
     <a target="mainFrame" href="oauth2client.clientsecrets-module.html#_validate_clientsecrets"
      >oauth2client.clientsecrets._validate_clientsecrets</a><br />  </div>
     <a target="mainFrame" href="oauth2client.clientsecrets-module.html#load"
diff --git a/docs/epy/toc-oauth2client.clientsecrets-module.html b/docs/epy/toc-oauth2client.clientsecrets-module.html
index 421505e..c1feba9 100644
--- a/docs/epy/toc-oauth2client.clientsecrets-module.html
+++ b/docs/epy/toc-oauth2client.clientsecrets-module.html
@@ -17,6 +17,9 @@
      >Error</a><br />    <a target="mainFrame" href="oauth2client.clientsecrets.InvalidClientSecretsError-class.html"
      >InvalidClientSecretsError</a><br />  <h2 class="toc">Functions</h2>
   <div class="private">
+    <a target="mainFrame" href="oauth2client.clientsecrets-module.html#_loadfile"
+     >_loadfile</a><br />  </div>
+  <div class="private">
     <a target="mainFrame" href="oauth2client.clientsecrets-module.html#_validate_clientsecrets"
      >_validate_clientsecrets</a><br />  </div>
     <a target="mainFrame" href="oauth2client.clientsecrets-module.html#load"