Merge pull request #274 from google/release-v1.5.3

Release v1.5.3.
diff --git a/CHANGELOG b/CHANGELOG
index c31790c..f2462be 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,10 @@
+v1.5.3
+  Version 1.5.3
+
+  Bugfix release
+
+  - Fixed import error with oauth2client >= 3.0.0. (#270)
+
 v1.5.2
   Version 1.5.2
 
diff --git a/docs/dyn/bigquery_v2.jobs.html b/docs/dyn/bigquery_v2.jobs.html
index b90faa4..23ae6e6 100644
--- a/docs/dyn/bigquery_v2.jobs.html
+++ b/docs/dyn/bigquery_v2.jobs.html
@@ -165,6 +165,31 @@
             "totalBytesBilled": "A String", # [Output-only] Total bytes billed for the job.
             "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for the job.
             "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+            "undeclaredQueryParameters": [ # [Output-only, Experimental] Standard SQL only: list of undeclared query parameters detected during a dry run validation.
+              {
+                "parameterType": { # [Required] The type of this parameter.
+                  "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                    {
+                      "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                      "description": "A String", # [Optional] Human-oriented description of the field.
+                      "name": "A String", # [Optional] The name of this field.
+                    },
+                  ],
+                  "type": "A String", # [Required] The top level type of this field.
+                  "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+                },
+                "parameterValue": { # [Required] The value of this parameter.
+                  "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "arrayValues": [ # [Optional] The array values, if this is an array type.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+                },
+                "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+              },
+            ],
             "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
             "billingTier": 42, # [Output-only] Billing tier for the job.
             "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
@@ -214,6 +239,9 @@
             },
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
+            "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+              "A String",
+            ],
             "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
             "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
             "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -293,9 +321,43 @@
               "tableId": "A String", # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
               "datasetId": "A String", # [Required] The ID of the dataset containing this table.
             },
+            "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+              "A String",
+            ],
             "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
+            "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
+              {
+                "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
+                "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
+              },
+            ],
+            "queryParameters": [ # [Experimental] Query parameters for Standard SQL queries.
+              {
+                "parameterType": { # [Required] The type of this parameter.
+                  "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                    {
+                      "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                      "description": "A String", # [Optional] Human-oriented description of the field.
+                      "name": "A String", # [Optional] The name of this field.
+                    },
+                  ],
+                  "type": "A String", # [Required] The top level type of this field.
+                  "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+                },
+                "parameterValue": { # [Required] The value of this parameter.
+                  "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "arrayValues": [ # [Optional] The array values, if this is an array type.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+                },
+                "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+              },
+            ],
             "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
             "query": "A String", # [Required] BigQuery SQL query to execute.
             "preserveNulls": True or False, # [Deprecated] This property is deprecated.
@@ -358,12 +420,7 @@
                 },
               },
             },
-            "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
-              {
-                "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
-                "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
-              },
-            ],
+            "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
           },
         },
         "id": "A String", # [Output-only] Opaque ID field of the job
@@ -441,6 +498,31 @@
           "totalBytesBilled": "A String", # [Output-only] Total bytes billed for the job.
           "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for the job.
           "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+          "undeclaredQueryParameters": [ # [Output-only, Experimental] Standard SQL only: list of undeclared query parameters detected during a dry run validation.
+            {
+              "parameterType": { # [Required] The type of this parameter.
+                "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                  {
+                    "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                    "description": "A String", # [Optional] Human-oriented description of the field.
+                    "name": "A String", # [Optional] The name of this field.
+                  },
+                ],
+                "type": "A String", # [Required] The top level type of this field.
+                "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+              },
+              "parameterValue": { # [Required] The value of this parameter.
+                "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "arrayValues": [ # [Optional] The array values, if this is an array type.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+              },
+              "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+            },
+          ],
           "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
           "billingTier": 42, # [Output-only] Billing tier for the job.
           "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
@@ -490,6 +572,9 @@
           },
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
+          "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+            "A String",
+          ],
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
           "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
           "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -569,9 +654,43 @@
             "tableId": "A String", # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
             "datasetId": "A String", # [Required] The ID of the dataset containing this table.
           },
+          "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+            "A String",
+          ],
           "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
+          "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
+            {
+              "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
+              "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
+            },
+          ],
+          "queryParameters": [ # [Experimental] Query parameters for Standard SQL queries.
+            {
+              "parameterType": { # [Required] The type of this parameter.
+                "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                  {
+                    "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                    "description": "A String", # [Optional] Human-oriented description of the field.
+                    "name": "A String", # [Optional] The name of this field.
+                  },
+                ],
+                "type": "A String", # [Required] The top level type of this field.
+                "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+              },
+              "parameterValue": { # [Required] The value of this parameter.
+                "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "arrayValues": [ # [Optional] The array values, if this is an array type.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+              },
+              "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+            },
+          ],
           "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
           "query": "A String", # [Required] BigQuery SQL query to execute.
           "preserveNulls": True or False, # [Deprecated] This property is deprecated.
@@ -634,12 +753,7 @@
               },
             },
           },
-          "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
-            {
-              "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
-              "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
-            },
-          ],
+          "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
         },
       },
       "id": "A String", # [Output-only] Opaque ID field of the job
@@ -774,6 +888,31 @@
         "totalBytesBilled": "A String", # [Output-only] Total bytes billed for the job.
         "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for the job.
         "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+        "undeclaredQueryParameters": [ # [Output-only, Experimental] Standard SQL only: list of undeclared query parameters detected during a dry run validation.
+          {
+            "parameterType": { # [Required] The type of this parameter.
+              "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                {
+                  "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                  "description": "A String", # [Optional] Human-oriented description of the field.
+                  "name": "A String", # [Optional] The name of this field.
+                },
+              ],
+              "type": "A String", # [Required] The top level type of this field.
+              "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+            },
+            "parameterValue": { # [Required] The value of this parameter.
+              "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                # Object with schema name: QueryParameterValue
+              ],
+              "arrayValues": [ # [Optional] The array values, if this is an array type.
+                # Object with schema name: QueryParameterValue
+              ],
+              "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+            },
+            "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+          },
+        ],
         "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
         "billingTier": 42, # [Output-only] Billing tier for the job.
         "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
@@ -823,6 +962,9 @@
         },
         "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
         "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
+        "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+          "A String",
+        ],
         "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
         "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
         "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -902,9 +1044,43 @@
           "tableId": "A String", # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
           "datasetId": "A String", # [Required] The ID of the dataset containing this table.
         },
+        "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+          "A String",
+        ],
         "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
         "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
         "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
+        "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
+          {
+            "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
+            "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
+          },
+        ],
+        "queryParameters": [ # [Experimental] Query parameters for Standard SQL queries.
+          {
+            "parameterType": { # [Required] The type of this parameter.
+              "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                {
+                  "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                  "description": "A String", # [Optional] Human-oriented description of the field.
+                  "name": "A String", # [Optional] The name of this field.
+                },
+              ],
+              "type": "A String", # [Required] The top level type of this field.
+              "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+            },
+            "parameterValue": { # [Required] The value of this parameter.
+              "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                # Object with schema name: QueryParameterValue
+              ],
+              "arrayValues": [ # [Optional] The array values, if this is an array type.
+                # Object with schema name: QueryParameterValue
+              ],
+              "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+            },
+            "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+          },
+        ],
         "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
         "query": "A String", # [Required] BigQuery SQL query to execute.
         "preserveNulls": True or False, # [Deprecated] This property is deprecated.
@@ -967,12 +1143,7 @@
             },
           },
         },
-        "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
-          {
-            "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
-            "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
-          },
-        ],
+        "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
       },
     },
     "id": "A String", # [Output-only] Opaque ID field of the job
@@ -1041,6 +1212,31 @@
           "totalBytesBilled": "A String", # [Output-only] Total bytes billed for the job.
           "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for the job.
           "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+          "undeclaredQueryParameters": [ # [Output-only, Experimental] Standard SQL only: list of undeclared query parameters detected during a dry run validation.
+            {
+              "parameterType": { # [Required] The type of this parameter.
+                "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                  {
+                    "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                    "description": "A String", # [Optional] Human-oriented description of the field.
+                    "name": "A String", # [Optional] The name of this field.
+                  },
+                ],
+                "type": "A String", # [Required] The top level type of this field.
+                "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+              },
+              "parameterValue": { # [Required] The value of this parameter.
+                "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "arrayValues": [ # [Optional] The array values, if this is an array type.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+              },
+              "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+            },
+          ],
           "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
           "billingTier": 42, # [Output-only] Billing tier for the job.
           "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
@@ -1090,6 +1286,9 @@
           },
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
+          "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+            "A String",
+          ],
           "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
           "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
           "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1169,9 +1368,43 @@
             "tableId": "A String", # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
             "datasetId": "A String", # [Required] The ID of the dataset containing this table.
           },
+          "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+            "A String",
+          ],
           "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
           "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
           "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
+          "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
+            {
+              "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
+              "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
+            },
+          ],
+          "queryParameters": [ # [Experimental] Query parameters for Standard SQL queries.
+            {
+              "parameterType": { # [Required] The type of this parameter.
+                "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                  {
+                    "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                    "description": "A String", # [Optional] Human-oriented description of the field.
+                    "name": "A String", # [Optional] The name of this field.
+                  },
+                ],
+                "type": "A String", # [Required] The top level type of this field.
+                "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+              },
+              "parameterValue": { # [Required] The value of this parameter.
+                "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "arrayValues": [ # [Optional] The array values, if this is an array type.
+                  # Object with schema name: QueryParameterValue
+                ],
+                "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+              },
+              "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+            },
+          ],
           "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
           "query": "A String", # [Required] BigQuery SQL query to execute.
           "preserveNulls": True or False, # [Deprecated] This property is deprecated.
@@ -1234,12 +1467,7 @@
               },
             },
           },
-          "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
-            {
-              "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
-              "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
-            },
-          ],
+          "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
         },
       },
       "id": "A String", # [Output-only] Opaque ID field of the job
@@ -1331,6 +1559,31 @@
             "totalBytesBilled": "A String", # [Output-only] Total bytes billed for the job.
             "totalBytesProcessed": "A String", # [Output-only] Total bytes processed for the job.
             "cacheHit": True or False, # [Output-only] Whether the query result was fetched from the query cache.
+            "undeclaredQueryParameters": [ # [Output-only, Experimental] Standard SQL only: list of undeclared query parameters detected during a dry run validation.
+              {
+                "parameterType": { # [Required] The type of this parameter.
+                  "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                    {
+                      "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                      "description": "A String", # [Optional] Human-oriented description of the field.
+                      "name": "A String", # [Optional] The name of this field.
+                    },
+                  ],
+                  "type": "A String", # [Required] The top level type of this field.
+                  "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+                },
+                "parameterValue": { # [Required] The value of this parameter.
+                  "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "arrayValues": [ # [Optional] The array values, if this is an array type.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+                },
+                "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+              },
+            ],
             "numDmlAffectedRows": "A String", # [Output-only, Experimental] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.
             "billingTier": 42, # [Output-only] Billing tier for the job.
             "referencedTables": [ # [Output-only, Experimental] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.
@@ -1380,6 +1633,9 @@
             },
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "maxBadRecords": 42, # [Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid.
+            "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+              "A String",
+            ],
             "allowJaggedRows": True or False, # [Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.
             "skipLeadingRows": 42, # [Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.
             "sourceUris": [ # [Required] The fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can contain one '*' wildcard character and it must come after the 'bucket' name.
@@ -1459,9 +1715,43 @@
               "tableId": "A String", # [Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
               "datasetId": "A String", # [Required] The ID of the dataset containing this table.
             },
+            "schemaUpdateOptions": [ # [Experimental] Allows the schema of the desitination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.
+              "A String",
+            ],
             "priority": "A String", # [Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.
             "writeDisposition": "A String", # [Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.
             "allowLargeResults": True or False, # If true, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set.
+            "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
+              {
+                "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
+                "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
+              },
+            ],
+            "queryParameters": [ # [Experimental] Query parameters for Standard SQL queries.
+              {
+                "parameterType": { # [Required] The type of this parameter.
+                  "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+                    {
+                      "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+                      "description": "A String", # [Optional] Human-oriented description of the field.
+                      "name": "A String", # [Optional] The name of this field.
+                    },
+                  ],
+                  "type": "A String", # [Required] The top level type of this field.
+                  "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+                },
+                "parameterValue": { # [Required] The value of this parameter.
+                  "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "arrayValues": [ # [Optional] The array values, if this is an array type.
+                    # Object with schema name: QueryParameterValue
+                  ],
+                  "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+                },
+                "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+              },
+            ],
             "createDisposition": "A String", # [Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.
             "query": "A String", # [Required] BigQuery SQL query to execute.
             "preserveNulls": True or False, # [Deprecated] This property is deprecated.
@@ -1524,12 +1814,7 @@
                 },
               },
             },
-            "userDefinedFunctionResources": [ # [Experimental] Describes user-defined function resources used in the query.
-              {
-                "resourceUri": "A String", # [Pick one] A code resource to load from a Google Cloud Storage URI (gs://bucket/path).
-                "inlineCode": "A String", # [Pick one] An inline resource that contains code for a user-defined function (UDF). Providing a inline code resource is equivalent to providing a URI for a file containing the same code.
-              },
-            ],
+            "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
           },
         },
         "id": "A String", # Unique opaque ID of the job.
@@ -1571,13 +1856,39 @@
     "timeoutMs": 42, # [Optional] How long to wait for the query to complete, in milliseconds, before the request times out and returns. Note that this is only a timeout for the request, not the query. If the query takes longer to run than the timeout value, the call returns without any results and with the 'jobComplete' flag set to false. You can call GetQueryResults() to wait for the query to complete and read the results. The default value is 10000 milliseconds (10 seconds).
     "kind": "bigquery#queryRequest", # The resource type of the request.
     "dryRun": True or False, # [Optional] If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.
+    "parameterMode": "A String", # [Experimental] Standard SQL only. Whether to use positional (?) or named (@myparam) query parameters in this query.
     "useQueryCache": true, # [Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. The default value is true.
     "defaultDataset": { # [Optional] Specifies the default datasetId and projectId to assume for any unqualified table names in the query. If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'.
       "projectId": "A String", # [Optional] The ID of the project containing this dataset.
       "datasetId": "A String", # [Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.
     },
-    "useLegacySql": True or False, # [Experimental] Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the values of allowLargeResults and flattenResults are ignored; query will be run as if allowLargeResults is true and flattenResults is false.
+    "useLegacySql": true, # [Experimental] Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the values of allowLargeResults and flattenResults are ignored; query will be run as if allowLargeResults is true and flattenResults is false.
     "maxResults": 42, # [Optional] The maximum number of rows of data to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large. In addition to this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and only the byte limit applies.
+    "queryParameters": [ # [Experimental] Query parameters for Standard SQL queries.
+      {
+        "parameterType": { # [Required] The type of this parameter.
+          "structTypes": [ # [Optional] The types of the fields of this struct, in order, if this is a struct.
+            {
+              "type": # Object with schema name: QueryParameterType # [Required] The type of this field.
+              "description": "A String", # [Optional] Human-oriented description of the field.
+              "name": "A String", # [Optional] The name of this field.
+            },
+          ],
+          "type": "A String", # [Required] The top level type of this field.
+          "arrayType": # Object with schema name: QueryParameterType # [Optional] The type of the array's elements, if this is an array.
+        },
+        "parameterValue": { # [Required] The value of this parameter.
+          "structValues": [ # [Optional] The struct field values, in order of the struct type's declaration.
+            # Object with schema name: QueryParameterValue
+          ],
+          "arrayValues": [ # [Optional] The array values, if this is an array type.
+            # Object with schema name: QueryParameterValue
+          ],
+          "value": "A String", # [Optional] The value of this value, if a simple scalar type.
+        },
+        "name": "A String", # [Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.
+      },
+    ],
     "query": "A String", # [Required] A query string, following the BigQuery query syntax, of the query to execute. Example: "SELECT count(f1) FROM [myProjectId:myDatasetId.myTableId]".
     "preserveNulls": True or False, # [Deprecated] This property is deprecated.
   }
diff --git a/docs/dyn/civicinfo_v2.elections.html b/docs/dyn/civicinfo_v2.elections.html
index 998e3b2..317cf78 100644
--- a/docs/dyn/civicinfo_v2.elections.html
+++ b/docs/dyn/civicinfo_v2.elections.html
@@ -78,7 +78,7 @@
   <code><a href="#electionQuery">electionQuery()</a></code></p>
 <p class="firstline">List of available elections to query.</p>
 <p class="toc_element">
-  <code><a href="#voterInfoQuery">voterInfoQuery(address, electionId=None, officialOnly=None)</a></code></p>
+  <code><a href="#voterInfoQuery">voterInfoQuery(address, electionId=None, returnAllAvailableData=None, officialOnly=None)</a></code></p>
 <p class="firstline">Looks up information relevant to a voter based on the voter's registered address.</p>
 <h3>Method Details</h3>
 <div class="method">
@@ -104,12 +104,13 @@
 </div>
 
 <div class="method">
-    <code class="details" id="voterInfoQuery">voterInfoQuery(address, electionId=None, officialOnly=None)</code>
+    <code class="details" id="voterInfoQuery">voterInfoQuery(address, electionId=None, returnAllAvailableData=None, officialOnly=None)</code>
   <pre>Looks up information relevant to a voter based on the voter's registered address.
 
 Args:
   address: string, The registered address of the voter to look up. (required)
   electionId: string, The unique ID of the election to look up. A list of election IDs can be obtained at https://www.googleapis.com/civicinfo/{version}/elections
+  returnAllAvailableData: boolean, If set to true, the query will return the success codeand include any partial information when it is unable to determine a matching address or unable to determine the election for electionId=0 queries.
   officialOnly: boolean, If set to true, only data from official state sources will be returned.
 
 Returns:
@@ -299,6 +300,7 @@
           "scope": "A String", # The geographic scope of this district. If unspecified the district's geography is not known. One of: national, statewide, congressional, stateUpper, stateLower, countywide, judicial, schoolBoard, cityWide, township, countyCouncil, cityCouncil, ward, special
           "id": "A String", # An identifier for this district, relative to its scope. For example, the 34th State Senate district would have id "34" and a scope of stateUpper.
           "name": "A String", # The name of the district.
+          "kgForeignKey": "A String",
         },
         "ballotPlacement": "A String", # A number specifying the position of this contest on the voter's ballot.
         "referendumProStatement": "A String", # A statement in favor of the referendum. It does not necessarily appear on the ballot. This field is only populated for contests of type 'Referendum'.
@@ -319,7 +321,7 @@
             "email": "A String", # The email address for the candidate's campaign.
           },
         ],
-        "type": "A String", # The type of contest. Usually this will be 'General', 'Primary', or 'Run-off' for contests with candidates. For referenda this will be 'Referendum'.
+        "type": "A String", # The type of contest. Usually this will be 'General', 'Primary', or 'Run-off' for contests with candidates. For referenda this will be 'Referendum'. For Retention contests this will typically be 'Retention'.
         "referendumText": "A String", # The full text of the referendum. This field is only populated for contests of type 'Referendum'.
         "referendumConStatement": "A String", # A statement in opposition to the referendum. It does not necessarily appear on the ballot. This field is only populated for contests of type 'Referendum'.
         "referendumPassageThreshold": "A String", # The threshold of votes that the referendum needs in order to pass, e.g. "two-thirds". This field is only populated for contests of type 'Referendum'.
@@ -327,7 +329,7 @@
         "roles": [ # The roles which this office fulfills.
           "A String",
         ],
-        "referendumBallotResponses": [ # The set of ballot responses for the referendum. A ballot response represents a line on the ballot. Common examples might include "yes" or "no" for referenda, or a judge's name for a retention contest. This field is only populated for contests of type 'Referendum'.
+        "referendumBallotResponses": [ # The set of ballot responses for the referendum. A ballot response represents a line on the ballot. Common examples might include "yes" or "no" for referenda. This field is only populated for contests of type 'Referendum'.
           "A String",
         ],
         "level": [ # The levels of government of the office for this contest. There may be more than one in cases where a jurisdiction effectively acts at two different levels of government; for example, the mayor of the District of Columbia acts at "locality" level, but also effectively at both "administrative-area-2" and "administrative-area-1".
diff --git a/docs/dyn/classroom_v1.courses.courseWork.html b/docs/dyn/classroom_v1.courses.courseWork.html
index 0ccee91..e0be6bd 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.html
@@ -121,8 +121,8 @@
       "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
       "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
     },
-    "state": "A String", # Status of this course work.. If unspecified, the default state is `DRAFT`.
-    "materials": [ # Additional materials.
+    "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
+    "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
       { # Material attached to course work. When creating attachments, only the Link field may be specified.
         "link": { # URL item. # Link material.
           "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
@@ -157,7 +157,7 @@
         "A String",
       ],
     },
-    "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be an integer value.
+    "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be a non-negative integer value.
     "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only.
     "id": "A String", # Classroom-assigned identifier of this course work, unique per course. Read-only.
     "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Optional time of day, in UTC, that submissions for this this course work are due. This must be specified if `due_date` is specified.
@@ -194,8 +194,8 @@
         "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
         "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
       },
-      "state": "A String", # Status of this course work.. If unspecified, the default state is `DRAFT`.
-      "materials": [ # Additional materials.
+      "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
+      "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
         { # Material attached to course work. When creating attachments, only the Link field may be specified.
           "link": { # URL item. # Link material.
             "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
@@ -230,7 +230,7 @@
           "A String",
         ],
       },
-      "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be an integer value.
+      "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be a non-negative integer value.
       "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only.
       "id": "A String", # Classroom-assigned identifier of this course work, unique per course. Read-only.
       "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Optional time of day, in UTC, that submissions for this this course work are due. This must be specified if `due_date` is specified.
@@ -275,8 +275,8 @@
         "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
         "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
       },
-      "state": "A String", # Status of this course work.. If unspecified, the default state is `DRAFT`.
-      "materials": [ # Additional materials.
+      "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
+      "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
         { # Material attached to course work. When creating attachments, only the Link field may be specified.
           "link": { # URL item. # Link material.
             "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
@@ -311,7 +311,7 @@
           "A String",
         ],
       },
-      "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be an integer value.
+      "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be a non-negative integer value.
       "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only.
       "id": "A String", # Classroom-assigned identifier of this course work, unique per course. Read-only.
       "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Optional time of day, in UTC, that submissions for this this course work are due. This must be specified if `due_date` is specified.
@@ -362,8 +362,8 @@
             "day": 42, # Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year/month where the day is not significant.
             "year": 42, # Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
           },
-          "state": "A String", # Status of this course work.. If unspecified, the default state is `DRAFT`.
-          "materials": [ # Additional materials.
+          "state": "A String", # Status of this course work. If unspecified, the default state is `DRAFT`.
+          "materials": [ # Additional materials. CourseWork must have no more than 20 material items.
             { # Material attached to course work. When creating attachments, only the Link field may be specified.
               "link": { # URL item. # Link material.
                 "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
@@ -398,7 +398,7 @@
               "A String",
             ],
           },
-          "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be an integer value.
+          "maxPoints": 3.14, # Maximum grade for this course work. If zero or unspecified, this assignment is considered ungraded. This must be a non-negative integer value.
           "associatedWithDeveloper": True or False, # Whether this course work item is associated with the Developer Console project making the request. See google.classroom.Work.CreateCourseWork for more details. Read-only.
           "id": "A String", # Classroom-assigned identifier of this course work, unique per course. Read-only.
           "dueTime": { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may chose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # Optional time of day, in UTC, that submissions for this this course work are due. This must be specified if `due_date` is specified.
diff --git a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
index d13c3de..f1f6c36 100644
--- a/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
+++ b/docs/dyn/classroom_v1.courses.courseWork.studentSubmissions.html
@@ -113,12 +113,12 @@
   An object of the form:
 
     { # Student submission for course work. StudentSubmission items are generated when a CourseWork item is created. StudentSubmissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.
-    "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be an integer value. This is only visible to and modifiable by course teachers.
+    "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be a non-negative integer value. This is only visible to and modifiable by course teachers.
     "updateTime": "A String", # Last update time of this submission. This may be unset if the student has not accessed this item. Read-only.
     "alternateLink": "A String", # Absolute link to the submission in the Classroom web UI. Read-only.
     "courseId": "A String", # Identifier of the course. Read-only.
     "userId": "A String", # Identifier for the student that owns this submission. Read-only.
-    "creationTime": "A String", # Creation time of this submission.. This may be unset if the student has not accessed this item. Read-only.
+    "creationTime": "A String", # Creation time of this submission. This may be unset if the student has not accessed this item. Read-only.
     "shortAnswerSubmission": { # Student work for a short answer question. # Submission content when course_work_type is SHORT_ANSWER_QUESTION.
       "answer": "A String", # Student response to a short-answer question.
     },
@@ -127,10 +127,10 @@
     "state": "A String", # State of this submission. Read-only.
     "courseWorkId": "A String", # Identifier for the course work this corresponds to. Read-only.
     "courseWorkType": "A String", # Type of course work this submission is for. Read-only.
-    "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MUTIPLE_CHOICE_QUESTION.
+    "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.
       "answer": "A String", # Student's select choice.
     },
-    "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be an integer value. This may be modified only by course teachers.
+    "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
     "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
       "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
         { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
@@ -170,7 +170,7 @@
 
 Args:
   courseId: string, Identifier of the course. This identifier can be either the Classroom-assigned identifier or an alias. (required)
-  courseWorkId: string, Identifer of the student work to request. If `user_id` is specified, this may be set to the string literal `"-"` to request student work for all course work in the specified course. (required)
+  courseWorkId: string, Identifer of the student work to request. This may be set to the string literal `"-"` to request student work for all course work in the specified course. (required)
   pageSize: integer, Maximum number of items to return. Zero or unspecified indicates that the server may assign a maximum. The server may return fewer than the specified number of results.
   userId: string, Optional argument to restrict returned student work to those owned by the student with the specified identifier. The identifier can be one of the following: * the numeric identifier for the user * the email address of the user * the string literal `"me"`, indicating the requesting user
   states: string, Requested submission states. If specified, returned student submissions match one of the specified submission states. (repeated)
@@ -185,12 +185,12 @@
     "nextPageToken": "A String", # Token identifying the next page of results to return. If empty, no further results are available.
     "studentSubmissions": [ # Student work that matches the request.
       { # Student submission for course work. StudentSubmission items are generated when a CourseWork item is created. StudentSubmissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.
-        "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be an integer value. This is only visible to and modifiable by course teachers.
+        "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be a non-negative integer value. This is only visible to and modifiable by course teachers.
         "updateTime": "A String", # Last update time of this submission. This may be unset if the student has not accessed this item. Read-only.
         "alternateLink": "A String", # Absolute link to the submission in the Classroom web UI. Read-only.
         "courseId": "A String", # Identifier of the course. Read-only.
         "userId": "A String", # Identifier for the student that owns this submission. Read-only.
-        "creationTime": "A String", # Creation time of this submission.. This may be unset if the student has not accessed this item. Read-only.
+        "creationTime": "A String", # Creation time of this submission. This may be unset if the student has not accessed this item. Read-only.
         "shortAnswerSubmission": { # Student work for a short answer question. # Submission content when course_work_type is SHORT_ANSWER_QUESTION.
           "answer": "A String", # Student response to a short-answer question.
         },
@@ -199,10 +199,10 @@
         "state": "A String", # State of this submission. Read-only.
         "courseWorkId": "A String", # Identifier for the course work this corresponds to. Read-only.
         "courseWorkType": "A String", # Type of course work this submission is for. Read-only.
-        "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MUTIPLE_CHOICE_QUESTION.
+        "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.
           "answer": "A String", # Student's select choice.
         },
-        "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be an integer value. This may be modified only by course teachers.
+        "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
         "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
           "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
             { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
@@ -264,7 +264,7 @@
     The object takes the form of:
 
 { # Request to modify the attachments of a student submission.
-    "addAttachments": [ # Attachments to add. This may only contain link attachments.
+    "addAttachments": [ # Attachments to add. A student submission may not have more than 20 attachments. This may only contain link attachments.
       { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
         "link": { # URL item. # Link attachment.
           "url": "A String", # URL to link to. This must be a valid UTF-8 string containing between 1 and 2024 characters.
@@ -299,12 +299,12 @@
   An object of the form:
 
     { # Student submission for course work. StudentSubmission items are generated when a CourseWork item is created. StudentSubmissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.
-    "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be an integer value. This is only visible to and modifiable by course teachers.
+    "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be a non-negative integer value. This is only visible to and modifiable by course teachers.
     "updateTime": "A String", # Last update time of this submission. This may be unset if the student has not accessed this item. Read-only.
     "alternateLink": "A String", # Absolute link to the submission in the Classroom web UI. Read-only.
     "courseId": "A String", # Identifier of the course. Read-only.
     "userId": "A String", # Identifier for the student that owns this submission. Read-only.
-    "creationTime": "A String", # Creation time of this submission.. This may be unset if the student has not accessed this item. Read-only.
+    "creationTime": "A String", # Creation time of this submission. This may be unset if the student has not accessed this item. Read-only.
     "shortAnswerSubmission": { # Student work for a short answer question. # Submission content when course_work_type is SHORT_ANSWER_QUESTION.
       "answer": "A String", # Student response to a short-answer question.
     },
@@ -313,10 +313,10 @@
     "state": "A String", # State of this submission. Read-only.
     "courseWorkId": "A String", # Identifier for the course work this corresponds to. Read-only.
     "courseWorkType": "A String", # Type of course work this submission is for. Read-only.
-    "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MUTIPLE_CHOICE_QUESTION.
+    "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.
       "answer": "A String", # Student's select choice.
     },
-    "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be an integer value. This may be modified only by course teachers.
+    "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
     "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
       "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
         { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
@@ -362,12 +362,12 @@
     The object takes the form of:
 
 { # Student submission for course work. StudentSubmission items are generated when a CourseWork item is created. StudentSubmissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.
-  "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be an integer value. This is only visible to and modifiable by course teachers.
+  "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be a non-negative integer value. This is only visible to and modifiable by course teachers.
   "updateTime": "A String", # Last update time of this submission. This may be unset if the student has not accessed this item. Read-only.
   "alternateLink": "A String", # Absolute link to the submission in the Classroom web UI. Read-only.
   "courseId": "A String", # Identifier of the course. Read-only.
   "userId": "A String", # Identifier for the student that owns this submission. Read-only.
-  "creationTime": "A String", # Creation time of this submission.. This may be unset if the student has not accessed this item. Read-only.
+  "creationTime": "A String", # Creation time of this submission. This may be unset if the student has not accessed this item. Read-only.
   "shortAnswerSubmission": { # Student work for a short answer question. # Submission content when course_work_type is SHORT_ANSWER_QUESTION.
     "answer": "A String", # Student response to a short-answer question.
   },
@@ -376,10 +376,10 @@
   "state": "A String", # State of this submission. Read-only.
   "courseWorkId": "A String", # Identifier for the course work this corresponds to. Read-only.
   "courseWorkType": "A String", # Type of course work this submission is for. Read-only.
-  "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MUTIPLE_CHOICE_QUESTION.
+  "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.
     "answer": "A String", # Student's select choice.
   },
-  "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be an integer value. This may be modified only by course teachers.
+  "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
   "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
     "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
       { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
@@ -419,12 +419,12 @@
   An object of the form:
 
     { # Student submission for course work. StudentSubmission items are generated when a CourseWork item is created. StudentSubmissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.
-    "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be an integer value. This is only visible to and modifiable by course teachers.
+    "draftGrade": 3.14, # Optional pending grade. If unset, no grade was set. This must be a non-negative integer value. This is only visible to and modifiable by course teachers.
     "updateTime": "A String", # Last update time of this submission. This may be unset if the student has not accessed this item. Read-only.
     "alternateLink": "A String", # Absolute link to the submission in the Classroom web UI. Read-only.
     "courseId": "A String", # Identifier of the course. Read-only.
     "userId": "A String", # Identifier for the student that owns this submission. Read-only.
-    "creationTime": "A String", # Creation time of this submission.. This may be unset if the student has not accessed this item. Read-only.
+    "creationTime": "A String", # Creation time of this submission. This may be unset if the student has not accessed this item. Read-only.
     "shortAnswerSubmission": { # Student work for a short answer question. # Submission content when course_work_type is SHORT_ANSWER_QUESTION.
       "answer": "A String", # Student response to a short-answer question.
     },
@@ -433,10 +433,10 @@
     "state": "A String", # State of this submission. Read-only.
     "courseWorkId": "A String", # Identifier for the course work this corresponds to. Read-only.
     "courseWorkType": "A String", # Type of course work this submission is for. Read-only.
-    "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MUTIPLE_CHOICE_QUESTION.
+    "multipleChoiceSubmission": { # Student work for a multiple-choice question. # Submission content when course_work_type is MULTIPLE_CHOICE_QUESTION.
       "answer": "A String", # Student's select choice.
     },
-    "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be an integer value. This may be modified only by course teachers.
+    "assignedGrade": 3.14, # Optional grade. If unset, no grade was set. This must be a non-negative integer value. This may be modified only by course teachers.
     "assignmentSubmission": { # Student work for an assignment. # Submission content when course_work_type is ASSIGNMENT .
       "attachments": [ # Attachments added by the student. Drive files that correspond to materials with a share mode of SUBMISSION_COPY may not exist yet if the student has not accessed the assignment in Classroom. Some attachment metadata is only populated if the requesting user has permission to access it. Identifier and alternate_link fields are available, but others (e.g. title) may not be.
         { # Attachment added to student assignment work. When creating attachments, only the Link field may be specified.
diff --git a/docs/dyn/classroom_v1.userProfiles.html b/docs/dyn/classroom_v1.userProfiles.html
index cc4d449..1a0563f 100644
--- a/docs/dyn/classroom_v1.userProfiles.html
+++ b/docs/dyn/classroom_v1.userProfiles.html
@@ -75,6 +75,16 @@
 <h1><a href="classroom_v1.html">Google Classroom API</a> . <a href="classroom_v1.userProfiles.html">userProfiles</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
+  <code><a href="classroom_v1.userProfiles.guardianInvitations.html">guardianInvitations()</a></code>
+</p>
+<p class="firstline">Returns the guardianInvitations Resource.</p>
+
+<p class="toc_element">
+  <code><a href="classroom_v1.userProfiles.guardians.html">guardians()</a></code>
+</p>
+<p class="firstline">Returns the guardians Resource.</p>
+
+<p class="toc_element">
   <code><a href="#get">get(userId, x__xgafv=None)</a></code></p>
 <p class="firstline">Returns a user profile. This method returns the following error codes: * `PERMISSION_DENIED` if the requesting user is not permitted to access this user profile or if no profile exists with the requested ID or for access errors.</p>
 <h3>Method Details</h3>
diff --git a/docs/dyn/cloudbuild_v1.projects.triggers.html b/docs/dyn/cloudbuild_v1.projects.triggers.html
index 66f571a..1a16924 100644
--- a/docs/dyn/cloudbuild_v1.projects.triggers.html
+++ b/docs/dyn/cloudbuild_v1.projects.triggers.html
@@ -106,22 +106,6 @@
     "id": "A String", # Unique identifier of the trigger.
         # 
         # @OutputOnly
-    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-        # 
-        # Branch and tag names in trigger templates are interpreted as regular
-        # expressions. Any branch or tag change that matches that regular expression
-        # will trigger a build.
-        # Repository.
-      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-          # the build is assumed.
-      "branchName": "A String", # Name of the branch to build.
-      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      "tagName": "A String", # Name of the tag to build.
-      "commitSha": "A String", # Explicit commit SHA to build.
-    },
-    "createTime": "A String", # Time when the trigger was created.
-        # 
-        # @OutputOnly
     "build": { # A build resource in the Container Builder API. # Contents of the build template.
         #
         # At a high level, a Build describes where to find source code, how to build
@@ -273,6 +257,24 @@
       "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
           # @OutputOnly
     },
+    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+        # 
+        # Branch and tag names in trigger templates are interpreted as regular
+        # expressions. Any branch or tag change that matches that regular expression
+        # will trigger a build.
+        # Repository.
+      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+          # the build is assumed.
+      "branchName": "A String", # Name of the branch to build.
+      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+      "tagName": "A String", # Name of the tag to build.
+      "commitSha": "A String", # Explicit commit SHA to build.
+    },
+    "createTime": "A String", # Time when the trigger was created.
+        # 
+        # @OutputOnly
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
   }
 
   x__xgafv: string, V1 error format.
@@ -288,22 +290,6 @@
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
-      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-          #
-          # Branch and tag names in trigger templates are interpreted as regular
-          # expressions. Any branch or tag change that matches that regular expression
-          # will trigger a build.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-      },
-      "createTime": "A String", # Time when the trigger was created.
-          #
-          # @OutputOnly
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
           # At a high level, a Build describes where to find source code, how to build
@@ -455,6 +441,24 @@
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
             # @OutputOnly
       },
+      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+          #
+          # Branch and tag names in trigger templates are interpreted as regular
+          # expressions. Any branch or tag change that matches that regular expression
+          # will trigger a build.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+        "tagName": "A String", # Name of the tag to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+      },
+      "createTime": "A String", # Time when the trigger was created.
+          #
+          # @OutputOnly
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
     }</pre>
 </div>
 
@@ -509,22 +513,6 @@
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
-      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-          #
-          # Branch and tag names in trigger templates are interpreted as regular
-          # expressions. Any branch or tag change that matches that regular expression
-          # will trigger a build.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-      },
-      "createTime": "A String", # Time when the trigger was created.
-          #
-          # @OutputOnly
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
           # At a high level, a Build describes where to find source code, how to build
@@ -676,6 +664,24 @@
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
             # @OutputOnly
       },
+      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+          #
+          # Branch and tag names in trigger templates are interpreted as regular
+          # expressions. Any branch or tag change that matches that regular expression
+          # will trigger a build.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+        "tagName": "A String", # Name of the tag to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+      },
+      "createTime": "A String", # Time when the trigger was created.
+          #
+          # @OutputOnly
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
     }</pre>
 </div>
 
@@ -702,22 +708,6 @@
           "id": "A String", # Unique identifier of the trigger.
               #
               # @OutputOnly
-          "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-              #
-              # Branch and tag names in trigger templates are interpreted as regular
-              # expressions. Any branch or tag change that matches that regular expression
-              # will trigger a build.
-              # Repository.
-            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-                # the build is assumed.
-            "branchName": "A String", # Name of the branch to build.
-            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-            "tagName": "A String", # Name of the tag to build.
-            "commitSha": "A String", # Explicit commit SHA to build.
-          },
-          "createTime": "A String", # Time when the trigger was created.
-              #
-              # @OutputOnly
           "build": { # A build resource in the Container Builder API. # Contents of the build template.
               #
               # At a high level, a Build describes where to find source code, how to build
@@ -869,6 +859,24 @@
             "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
                 # @OutputOnly
           },
+          "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+              #
+              # Branch and tag names in trigger templates are interpreted as regular
+              # expressions. Any branch or tag change that matches that regular expression
+              # will trigger a build.
+              # Repository.
+            "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+                # the build is assumed.
+            "branchName": "A String", # Name of the branch to build.
+            "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+            "tagName": "A String", # Name of the tag to build.
+            "commitSha": "A String", # Explicit commit SHA to build.
+          },
+          "createTime": "A String", # Time when the trigger was created.
+              #
+              # @OutputOnly
+          "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+              # template.
         },
     ],
   }</pre>
@@ -891,22 +899,6 @@
     "id": "A String", # Unique identifier of the trigger.
         # 
         # @OutputOnly
-    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-        # 
-        # Branch and tag names in trigger templates are interpreted as regular
-        # expressions. Any branch or tag change that matches that regular expression
-        # will trigger a build.
-        # Repository.
-      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-          # the build is assumed.
-      "branchName": "A String", # Name of the branch to build.
-      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-      "tagName": "A String", # Name of the tag to build.
-      "commitSha": "A String", # Explicit commit SHA to build.
-    },
-    "createTime": "A String", # Time when the trigger was created.
-        # 
-        # @OutputOnly
     "build": { # A build resource in the Container Builder API. # Contents of the build template.
         #
         # At a high level, a Build describes where to find source code, how to build
@@ -1058,6 +1050,24 @@
       "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
           # @OutputOnly
     },
+    "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+        # 
+        # Branch and tag names in trigger templates are interpreted as regular
+        # expressions. Any branch or tag change that matches that regular expression
+        # will trigger a build.
+        # Repository.
+      "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+          # the build is assumed.
+      "branchName": "A String", # Name of the branch to build.
+      "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+      "tagName": "A String", # Name of the tag to build.
+      "commitSha": "A String", # Explicit commit SHA to build.
+    },
+    "createTime": "A String", # Time when the trigger was created.
+        # 
+        # @OutputOnly
+    "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+        # template.
   }
 
   x__xgafv: string, V1 error format.
@@ -1073,22 +1083,6 @@
       "id": "A String", # Unique identifier of the trigger.
           #
           # @OutputOnly
-      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
-          #
-          # Branch and tag names in trigger templates are interpreted as regular
-          # expressions. Any branch or tag change that matches that regular expression
-          # will trigger a build.
-          # Repository.
-        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
-            # the build is assumed.
-        "branchName": "A String", # Name of the branch to build.
-        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
-        "tagName": "A String", # Name of the tag to build.
-        "commitSha": "A String", # Explicit commit SHA to build.
-      },
-      "createTime": "A String", # Time when the trigger was created.
-          #
-          # @OutputOnly
       "build": { # A build resource in the Container Builder API. # Contents of the build template.
           #
           # At a high level, a Build describes where to find source code, how to build
@@ -1240,6 +1234,24 @@
         "logUrl": "A String", # URL to logs for this build in Google Cloud Logging.
             # @OutputOnly
       },
+      "triggerTemplate": { # RepoSource describes the location of the source in a Google Cloud Source # Template describing the types of source changes to trigger a build.
+          #
+          # Branch and tag names in trigger templates are interpreted as regular
+          # expressions. Any branch or tag change that matches that regular expression
+          # will trigger a build.
+          # Repository.
+        "projectId": "A String", # ID of the project that owns the repo. If omitted, the project ID requesting
+            # the build is assumed.
+        "branchName": "A String", # Name of the branch to build.
+        "repoName": "A String", # Name of the repo. If omitted, the name "default" is assumed.
+        "tagName": "A String", # Name of the tag to build.
+        "commitSha": "A String", # Explicit commit SHA to build.
+      },
+      "createTime": "A String", # Time when the trigger was created.
+          #
+          # @OutputOnly
+      "filename": "A String", # Path, from the source root, to a file whose contents is used for the
+          # template.
     }</pre>
 </div>
 
diff --git a/docs/dyn/datastore_v1.projects.html b/docs/dyn/datastore_v1.projects.html
index 0be14bc..e31cc90 100644
--- a/docs/dyn/datastore_v1.projects.html
+++ b/docs/dyn/datastore_v1.projects.html
@@ -103,7 +103,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The request for google.datastore.v1.Datastore.AllocateIds.
+{ # The request for Datastore.AllocateIds.
     "keys": [ # A list of keys with incomplete key paths for which to allocate IDs.
         # No key may be reserved/read-only.
       { # A unique identifier for an entity.
@@ -179,7 +179,7 @@
 Returns:
   An object of the form:
 
-    { # The response for google.datastore.v1.Datastore.AllocateIds.
+    { # The response for Datastore.AllocateIds.
     "keys": [ # The keys specified in the request (in the same order), each with
         # its key path completed with a newly allocated ID.
       { # A unique identifier for an entity.
@@ -257,7 +257,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The request for google.datastore.v1.Datastore.BeginTransaction.
+{ # The request for Datastore.BeginTransaction.
   }
 
   x__xgafv: string, V1 error format.
@@ -268,7 +268,7 @@
 Returns:
   An object of the form:
 
-    { # The response for google.datastore.v1.Datastore.BeginTransaction.
+    { # The response for Datastore.BeginTransaction.
     "transaction": "A String", # The transaction identifier (always present).
   }</pre>
 </div>
@@ -283,10 +283,10 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The request for google.datastore.v1.Datastore.Commit.
+{ # The request for Datastore.Commit.
     "transaction": "A String", # The identifier of the transaction associated with the commit. A
         # transaction identifier is returned by a call to
-        # BeginTransaction.
+        # Datastore.BeginTransaction.
     "mode": "A String", # The type of commit to perform. Defaults to `TRANSACTIONAL`.
     "mutations": [ # The mutations to perform.
         # 
@@ -1039,7 +1039,7 @@
 Returns:
   An object of the form:
 
-    { # The response for google.datastore.v1.Datastore.Commit.
+    { # The response for Datastore.Commit.
     "mutationResults": [ # The result of performing the mutations.
         # The i-th mutation result corresponds to the i-th mutation in the request.
       { # The result of applying a mutation.
@@ -1129,7 +1129,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The request for google.datastore.v1.Datastore.Lookup.
+{ # The request for Datastore.Lookup.
     "keys": [ # Keys of entities to look up.
       { # A unique identifier for an entity.
           # If a key's partition ID or any of its path kinds or names are
@@ -1197,7 +1197,7 @@
     "readOptions": { # The options shared by read requests. # The options for this lookup request.
       "transaction": "A String", # The identifier of the transaction in which to read. A
           # transaction identifier is returned by a call to
-          # BeginTransaction.
+          # Datastore.BeginTransaction.
       "readConsistency": "A String", # The non-transactional read consistency to use.
           # Cannot be set to `STRONG` for global queries.
     },
@@ -1211,7 +1211,7 @@
 Returns:
   An object of the form:
 
-    { # The response for google.datastore.v1.Datastore.Lookup.
+    { # The response for Datastore.Lookup.
     "found": [ # Entities found as `ResultType.FULL` entities. The order of results in this
         # field is undefined and has no relation to the order of the keys in the
         # input.
@@ -1221,10 +1221,12 @@
         "version": "A String", # The version of the entity, a strictly positive number that monotonically
             # increases with changes to the entity.
             #
-            # This field is set for `FULL` entity results.
-            # For missing entities in
-            # `LookupResponse`, this is the version of the snapshot that was used to look
-            # up the entity, and it is always set except for eventually consistent reads.
+            # This field is set for `FULL` entity
+            # results.
+            #
+            # For missing entities in `LookupResponse`, this
+            # is the version of the snapshot that was used to look up the entity, and it
+            # is always set except for eventually consistent reads.
         "entity": { # A Datastore data object. # The resulting entity.
             #
             # An entity is limited to 1 megabyte when stored. That _roughly_
@@ -1521,10 +1523,12 @@
         "version": "A String", # The version of the entity, a strictly positive number that monotonically
             # increases with changes to the entity.
             #
-            # This field is set for `FULL` entity results.
-            # For missing entities in
-            # `LookupResponse`, this is the version of the snapshot that was used to look
-            # up the entity, and it is always set except for eventually consistent reads.
+            # This field is set for `FULL` entity
+            # results.
+            #
+            # For missing entities in `LookupResponse`, this
+            # is the version of the snapshot that was used to look up the entity, and it
+            # is always set except for eventually consistent reads.
         "entity": { # A Datastore data object. # The resulting entity.
             #
             # An entity is limited to 1 megabyte when stored. That _roughly_
@@ -1758,9 +1762,9 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The request for google.datastore.v1.Datastore.Rollback.
+{ # The request for Datastore.Rollback.
     "transaction": "A String", # The transaction identifier, returned by a call to
-        # google.datastore.v1.Datastore.BeginTransaction.
+        # Datastore.BeginTransaction.
   }
 
   x__xgafv: string, V1 error format.
@@ -1771,7 +1775,7 @@
 Returns:
   An object of the form:
 
-    { # The response for google.datastore.v1.Datastore.Rollback
+    { # The response for Datastore.Rollback.
       # (an empty message).
   }</pre>
 </div>
@@ -1785,7 +1789,7 @@
   body: object, The request body. (required)
     The object takes the form of:
 
-{ # The request for google.datastore.v1.Datastore.RunQuery.
+{ # The request for Datastore.RunQuery.
     "query": { # A query for entities. # The query to run.
       "startCursor": "A String", # A starting point for the query results. Query cursors are
           # returned in query result batches and
@@ -2012,9 +2016,9 @@
       "namespaceId": "A String", # If not empty, the ID of the namespace to which the entities belong.
     },
     "gqlQuery": { # A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference). # The GQL query to run.
-      "namedBindings": { # For each non-reserved named binding site in the query string,
-          # there must be a named parameter with that name,
-          # but not necessarily the inverse.
+      "namedBindings": { # For each non-reserved named binding site in the query string, there must be
+          # a named parameter with that name, but not necessarily the inverse.
+          #
           # Key must match regex `A-Za-z_$*`, must not match regex
           # `__.*__`, and must not be `""`.
         "a_key": { # A binding parameter for a GQL query.
@@ -2163,9 +2167,9 @@
       },
       "positionalBindings": [ # Numbered binding site @1 references the first numbered parameter,
           # effectively using 1-based indexing, rather than the usual 0.
-          # For each binding site numbered i in `query_string`,
-          # there must be an i-th numbered parameter.
-          # The inverse must also be true.
+          #
+          # For each binding site numbered i in `query_string`, there must be an i-th
+          # numbered parameter. The inverse must also be true.
         { # A binding parameter for a GQL query.
           "cursor": "A String", # A query cursor. Query cursors are returned in query
               # result batches.
@@ -2312,15 +2316,15 @@
       ],
       "queryString": "A String", # A string of the format described
           # [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
-      "allowLiterals": True or False, # When false, the query string must not contain any literals and instead
-          # must bind all values. For example,
+      "allowLiterals": True or False, # When false, the query string must not contain any literals and instead must
+          # bind all values. For example,
           # `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while
           # `SELECT * FROM Kind WHERE a = @value` is.
     },
     "readOptions": { # The options shared by read requests. # The options for this query.
       "transaction": "A String", # The identifier of the transaction in which to read. A
           # transaction identifier is returned by a call to
-          # BeginTransaction.
+          # Datastore.BeginTransaction.
       "readConsistency": "A String", # The non-transactional read consistency to use.
           # Cannot be set to `STRONG` for global queries.
     },
@@ -2334,7 +2338,7 @@
 Returns:
   An object of the form:
 
-    { # The response for google.datastore.v1.Datastore.RunQuery.
+    { # The response for Datastore.RunQuery.
     "query": { # A query for entities. # The parsed form of the `GqlQuery` from the request, if it was set.
       "startCursor": "A String", # A starting point for the query results. Query cursors are
           # returned in query result batches and
@@ -2553,10 +2557,12 @@
           "version": "A String", # The version of the entity, a strictly positive number that monotonically
               # increases with changes to the entity.
               #
-              # This field is set for `FULL` entity results.
-              # For missing entities in
-              # `LookupResponse`, this is the version of the snapshot that was used to look
-              # up the entity, and it is always set except for eventually consistent reads.
+              # This field is set for `FULL` entity
+              # results.
+              #
+              # For missing entities in `LookupResponse`, this
+              # is the version of the snapshot that was used to look up the entity, and it
+              # is always set except for eventually consistent reads.
           "entity": { # A Datastore data object. # The resulting entity.
               #
               # An entity is limited to 1 megabyte when stored. That _roughly_
diff --git a/docs/dyn/deploymentmanager_v2.deployments.html b/docs/dyn/deploymentmanager_v2.deployments.html
index 301bbfa..1142e08 100644
--- a/docs/dyn/deploymentmanager_v2.deployments.html
+++ b/docs/dyn/deploymentmanager_v2.deployments.html
@@ -165,7 +165,7 @@
     },
     "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
@@ -223,7 +223,7 @@
     },
     "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
@@ -303,7 +303,7 @@
         },
         "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
         "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
       },
       "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
         "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
@@ -396,7 +396,7 @@
       },
       "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
     },
     "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
       "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
@@ -462,7 +462,7 @@
     },
     "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
@@ -555,7 +555,7 @@
             },
             "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
             "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-            "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+            "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
           },
           "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
             "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
@@ -665,7 +665,7 @@
       },
       "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
     },
     "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
       "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
@@ -739,7 +739,7 @@
     },
     "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
@@ -806,7 +806,7 @@
     },
     "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
@@ -885,7 +885,7 @@
       },
       "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
       "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
     },
     "target": { # [Input Only] The parameters that define your deployment, including the deployment configuration and relevant templates.
       "imports": [ # Specifies any files to import for this configuration. This can be used to import templates or other files. For example, you might import a text file in order to use the file in a template.
@@ -959,7 +959,7 @@
     },
     "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
diff --git a/docs/dyn/deploymentmanager_v2.operations.html b/docs/dyn/deploymentmanager_v2.operations.html
index 0357a7b..06bf839 100644
--- a/docs/dyn/deploymentmanager_v2.operations.html
+++ b/docs/dyn/deploymentmanager_v2.operations.html
@@ -138,7 +138,7 @@
     },
     "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
     "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+    "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
   }</pre>
 </div>
 
@@ -209,7 +209,7 @@
         },
         "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
         "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+        "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
       },
     ],
   }</pre>
diff --git a/docs/dyn/deploymentmanager_v2.resources.html b/docs/dyn/deploymentmanager_v2.resources.html
index 0a37ce3..50ad2f0 100644
--- a/docs/dyn/deploymentmanager_v2.resources.html
+++ b/docs/dyn/deploymentmanager_v2.resources.html
@@ -146,7 +146,7 @@
     "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
     "insertTime": "A String", # [Output Only] Timestamp when the resource was created or acquired, in RFC3339 text format .
     "manifest": "A String", # [Output Only] URL of the manifest representing the current configuration of this resource.
-    "type": "A String", # [Output Only] The type of the resource, for example compute.v1.instance, or replicaPools.v1beta2.instanceGroupManager.
+    "type": "A String", # [Output Only] The type of the resource, for example compute.v1.instance, or cloudfunctions.v1beta1.function.
     "properties": "A String", # [Output Only] The current properties of the resource before any references have been filled in. Returned as serialized YAML.
   }</pre>
 </div>
@@ -226,7 +226,7 @@
         "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
         "insertTime": "A String", # [Output Only] Timestamp when the resource was created or acquired, in RFC3339 text format .
         "manifest": "A String", # [Output Only] URL of the manifest representing the current configuration of this resource.
-        "type": "A String", # [Output Only] The type of the resource, for example compute.v1.instance, or replicaPools.v1beta2.instanceGroupManager.
+        "type": "A String", # [Output Only] The type of the resource, for example compute.v1.instance, or cloudfunctions.v1beta1.function.
         "properties": "A String", # [Output Only] The current properties of the resource before any references have been filled in. Returned as serialized YAML.
       },
     ],
diff --git a/docs/dyn/deploymentmanager_v2.types.html b/docs/dyn/deploymentmanager_v2.types.html
index 569e40e..5673b7b 100644
--- a/docs/dyn/deploymentmanager_v2.types.html
+++ b/docs/dyn/deploymentmanager_v2.types.html
@@ -150,7 +150,7 @@
           },
           "endTime": "A String", # [Output Only] The time that this operation was completed. This value is in RFC3339 text format.
           "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-          "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies.
+          "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. If creating a persistent disk snapshot, this points to the persistent disk that the snapshot was created from.
         },
         "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
         "insertTime": "A String", # [Output Only] Timestamp when the type was created, in RFC3339 text format.
diff --git a/docs/dyn/dns_v1.managedZones.html b/docs/dyn/dns_v1.managedZones.html
index f6bd350..04fa056 100644
--- a/docs/dyn/dns_v1.managedZones.html
+++ b/docs/dyn/dns_v1.managedZones.html
@@ -109,7 +109,7 @@
     "nameServerSet": "A String", # Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet is a set of DNS name servers that all host the same ManagedZones. Most users will leave this field unset.
     "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
     "id": "A String", # Unique identifier for the resource; defined by the server (output only)
-    "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-32 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
+    "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
   }
 
 
@@ -126,7 +126,7 @@
       "nameServerSet": "A String", # Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet is a set of DNS name servers that all host the same ManagedZones. Most users will leave this field unset.
       "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
       "id": "A String", # Unique identifier for the resource; defined by the server (output only)
-      "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-32 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
+      "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
     }</pre>
 </div>
 
@@ -161,7 +161,7 @@
       "nameServerSet": "A String", # Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet is a set of DNS name servers that all host the same ManagedZones. Most users will leave this field unset.
       "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
       "id": "A String", # Unique identifier for the resource; defined by the server (output only)
-      "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-32 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
+      "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
     }</pre>
 </div>
 
@@ -194,7 +194,7 @@
           "nameServerSet": "A String", # Optionally specifies the NameServerSet for this ManagedZone. A NameServerSet is a set of DNS name servers that all host the same ManagedZones. Most users will leave this field unset.
           "dnsName": "A String", # The DNS name of this managed zone, for instance "example.com.".
           "id": "A String", # Unique identifier for the resource; defined by the server (output only)
-          "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-32 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
+          "name": "A String", # User assigned name for this resource. Must be unique within the project. The name must be 1-63 characters long, must begin with a letter, end with a letter or digit, and only contain lowercase letters, digits or dashes.
         },
     ],
   }</pre>
diff --git a/docs/dyn/genomics_v1beta2.callsets.html b/docs/dyn/genomics_v1beta2.callsets.html
index dc62800..339bc85 100644
--- a/docs/dyn/genomics_v1beta2.callsets.html
+++ b/docs/dyn/genomics_v1beta2.callsets.html
@@ -176,7 +176,7 @@
   <pre>Updates a call set. This method supports patch semantics.
 
 Args:
-  callSetId: string, The ID of the call set to be updated. (required)
+  callSetId: string, Required. The ID of the call set to be updated. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
@@ -264,7 +264,7 @@
   <pre>Updates a call set.
 
 Args:
-  callSetId: string, The ID of the call set to be updated. (required)
+  callSetId: string, Required. The ID of the call set to be updated. (required)
   body: object, The request body. (required)
     The object takes the form of:
 
diff --git a/docs/dyn/identitytoolkit_v3.relyingparty.html b/docs/dyn/identitytoolkit_v3.relyingparty.html
index 678cdca..bf6a581 100644
--- a/docs/dyn/identitytoolkit_v3.relyingparty.html
+++ b/docs/dyn/identitytoolkit_v3.relyingparty.html
@@ -228,6 +228,7 @@
             "federatedId": "A String", # User's identifier at IDP.
             "displayName": "A String", # The user's display name at the IDP.
             "photoUrl": "A String", # The user's photo url at the IDP.
+            "rawUserInfo": "A String", # Raw IDP-returned user info.
             "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
             "rawId": "A String", # User's raw identifier directly returned from IDP.
             "email": "A String", # User's email at IDP.
@@ -285,6 +286,7 @@
             "federatedId": "A String", # User's identifier at IDP.
             "displayName": "A String", # The user's display name at the IDP.
             "photoUrl": "A String", # The user's photo url at the IDP.
+            "rawUserInfo": "A String", # Raw IDP-returned user info.
             "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
             "rawId": "A String", # User's raw identifier directly returned from IDP.
             "email": "A String", # User's email at IDP.
@@ -671,6 +673,7 @@
             "federatedId": "A String", # User's identifier at IDP.
             "displayName": "A String", # The user's display name at the IDP.
             "photoUrl": "A String", # The user's photo url at the IDP.
+            "rawUserInfo": "A String", # Raw IDP-returned user info.
             "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name, e.g., google.com, aol.com, live.net and yahoo.com. For other OpenID IdPs it's the OP identifier.
             "rawId": "A String", # User's raw identifier directly returned from IDP.
             "email": "A String", # User's email at IDP.
@@ -723,6 +726,7 @@
     "requestUri": "A String", # The URI to which the IDP redirects the user back. It may contain federated login result params added by the IDP.
     "returnSecureToken": True or False, # Whether return sts id token and refresh token instead of gitkit token.
     "returnRefreshToken": True or False, # Whether to return refresh tokens.
+    "returnIdpCredential": True or False, # Whether return 200 and IDP credential rather than throw exception when federated id is already linked.
   }
 
 
@@ -734,6 +738,7 @@
     "localId": "A String", # The RP local ID if it's already been mapped to the IdP account identified by the federated ID.
     "photoUrl": "A String", # The URI of the public accessible profiel picture.
     "inputEmail": "A String", # It's the identifier param in the createAuthUri request if the identifier is an email. It can be used to check whether the user input email is different from the asserted email.
+    "rawUserInfo": "A String", # Raw IDP-returned user info.
     "appScheme": "A String", # The custom scheme used by mobile app.
     "expiresIn": "A String", # If idToken is STS id token, then this field will be expiration time of STS id token in seconds.
     "refreshToken": "A String", # If idToken is STS id token, then this field will be refresh token.
@@ -742,32 +747,33 @@
     ],
     "needEmail": True or False, # Whether need client to supply email to complete the federated login flow.
     "dateOfBirth": "A String", # The birth date of the IdP account.
-    "nickName": "A String", # The nick name of the user.
+    "oauthAccessToken": "A String", # The OAuth2 access token.
+    "emailRecycled": True or False, # It's true if the email is recycled.
     "email": "A String", # The email returned by the IdP. NOTE: The federated login user may not own the email.
     "screenName": "A String", # The screen_name of a Twitter user.
-    "oauthAccessToken": "A String", # The OAuth2 access token.
+    "nickName": "A String", # The nick name of the user.
+    "errorMessage": "A String", # Client error code.
     "oauthTokenSecret": "A String", # The OAuth1 access token secret.
     "language": "A String", # The language preference of the user.
     "needConfirmation": True or False, # Whether the assertion is from a non-trusted IDP and need account linking confirmation.
     "oauthIdToken": "A String", # The OIDC id token.
     "fullName": "A String", # The full name of the user.
     "kind": "identitytoolkit#VerifyAssertionResponse", # The fixed string "identitytoolkit#VerifyAssertionResponse".
-    "idToken": "A String", # The ID token.
     "displayName": "A String", # The display name of the user.
     "appInstallationUrl": "A String", # URL for OTA app installation.
     "firstName": "A String", # The first name of the user.
     "oauthExpireIn": 42, # The lifetime in seconds of the OAuth2 access token.
     "emailVerified": True or False, # The value is true if the IDP is also the email provider. It means the user owns the email.
+    "lastName": "A String", # The last name of the user.
     "oauthScope": "A String", # The scope for the OpenID OAuth extension.
     "oauthRequestToken": "A String", # The user approved request token for the OpenID OAuth extension.
     "oauthAuthorizationCode": "A String", # The OAuth2 authorization code.
     "originalEmail": "A String", # The original email stored in the mapping storage. It's returned when the federated ID is associated to a different email.
     "providerId": "A String", # The IdP ID. For white listed IdPs it's a short domain name e.g. google.com, aol.com, live.net and yahoo.com. If the "providerId" param is set to OpenID OP identifer other than the whilte listed IdPs the OP identifier is returned. If the "identifier" param is federated ID in the createAuthUri request. The domain part of the federated ID is returned.
     "context": "A String", # The opaque value used by the client to maintain context info between the authentication request and the IDP callback.
-    "lastName": "A String", # The last name of the user.
+    "idToken": "A String", # The ID token.
     "action": "A String", # The action code.
     "timeZone": "A String", # The timezone of the user.
-    "emailRecycled": True or False, # It's true if the email is recycled.
   }</pre>
 </div>
 
diff --git a/docs/dyn/servicecontrol_v1.services.html b/docs/dyn/servicecontrol_v1.services.html
index fd6f531..0fec2b9 100644
--- a/docs/dyn/servicecontrol_v1.services.html
+++ b/docs/dyn/servicecontrol_v1.services.html
@@ -212,7 +212,7 @@
           "metricName": "A String", # The metric name defined in the service configuration.
         },
       ],
-      "importance": "A String", # The importance of the data contained in the operation.
+      "importance": "A String", # DO NOT USE. This is an experimental field.
       "labels": { # Labels describing the operation. Only the following labels are allowed:
           #
           # - Labels describing monitored resources as defined in
@@ -290,6 +290,7 @@
   An object of the form:
 
     { # Response message for the Check method.
+    "serviceConfigId": "A String", # The actual config id used to process the request.
     "checkErrors": [ # Indicate the decision of the check.
         #
         # If no check errors are present, the service should process the operation.
@@ -446,7 +447,7 @@
             "metricName": "A String", # The metric name defined in the service configuration.
           },
         ],
-        "importance": "A String", # The importance of the data contained in the operation.
+        "importance": "A String", # DO NOT USE. This is an experimental field.
         "labels": { # Labels describing the operation. Only the following labels are allowed:
             #
             # - Labels describing monitored resources as defined in
@@ -525,6 +526,7 @@
   An object of the form:
 
     { # Response message for the Report method.
+    "serviceConfigId": "A String", # The actual config id used to process the request.
     "reportErrors": [ # Partial failures, one for each `Operation` in the request that failed
         # processing. There are three possible combinations of the RPC status:
         #
diff --git a/docs/dyn/servicemanagement_v1.services.configs.html b/docs/dyn/servicemanagement_v1.services.configs.html
index 01578cb..62e3f0b 100644
--- a/docs/dyn/servicemanagement_v1.services.configs.html
+++ b/docs/dyn/servicemanagement_v1.services.configs.html
@@ -150,7 +150,9 @@
         },
       ],
       "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
-          # displayed in user interfaces. For example, `"Google Cloud SQL Database"`.
+          # displayed in user interfaces. It should be a Title Cased Noun Phrase,
+          # without any article or other determiners. For example,
+          # `"Google Cloud SQL Database"`.
       "description": "A String", # Optional. A detailed description of the monitored resource type that might
           # be used in documentation.
       "name": "A String", # Optional. The resource name of the monitored resource descriptor:
@@ -409,8 +411,13 @@
                 #                bookstore_web.apps.googleusercontent.com
           },
         ],
-        "allowWithoutCredential": True or False, # Whether to allow requests without a credential.  If quota is enabled, an
-            # API key is required for such request to pass the quota check.
+        "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+            # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+            #
+            # For requests without credentials, if the service control environment is
+            # specified, each incoming request **must** be associated with a service
+            # consumer. This can be done by passing an API key that belongs to a consumer
+            # project.
         "selector": "A String", # Selects the methods to which this rule applies.
             #
             # Refer to selector for syntax details.
@@ -1475,7 +1482,9 @@
           },
         ],
         "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
-            # displayed in user interfaces. For example, `"Google Cloud SQL Database"`.
+            # displayed in user interfaces. It should be a Title Cased Noun Phrase,
+            # without any article or other determiners. For example,
+            # `"Google Cloud SQL Database"`.
         "description": "A String", # Optional. A detailed description of the monitored resource type that might
             # be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor:
@@ -1734,8 +1743,13 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential.  If quota is enabled, an
-              # API key is required for such request to pass the quota check.
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -2809,7 +2823,9 @@
           },
         ],
         "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
-            # displayed in user interfaces. For example, `"Google Cloud SQL Database"`.
+            # displayed in user interfaces. It should be a Title Cased Noun Phrase,
+            # without any article or other determiners. For example,
+            # `"Google Cloud SQL Database"`.
         "description": "A String", # Optional. A detailed description of the monitored resource type that might
             # be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor:
@@ -3068,8 +3084,13 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential.  If quota is enabled, an
-              # API key is required for such request to pass the quota check.
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
@@ -4148,7 +4169,9 @@
               },
             ],
             "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
-                # displayed in user interfaces. For example, `"Google Cloud SQL Database"`.
+                # displayed in user interfaces. It should be a Title Cased Noun Phrase,
+                # without any article or other determiners. For example,
+                # `"Google Cloud SQL Database"`.
             "description": "A String", # Optional. A detailed description of the monitored resource type that might
                 # be used in documentation.
             "name": "A String", # Optional. The resource name of the monitored resource descriptor:
@@ -4407,8 +4430,13 @@
                       #                bookstore_web.apps.googleusercontent.com
                 },
               ],
-              "allowWithoutCredential": True or False, # Whether to allow requests without a credential.  If quota is enabled, an
-                  # API key is required for such request to pass the quota check.
+              "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+                  # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+                  #
+                  # For requests without credentials, if the service control environment is
+                  # specified, each incoming request **must** be associated with a service
+                  # consumer. This can be done by passing an API key that belongs to a consumer
+                  # project.
               "selector": "A String", # Selects the methods to which this rule applies.
                   #
                   # Refer to selector for syntax details.
diff --git a/docs/dyn/servicemanagement_v1.services.html b/docs/dyn/servicemanagement_v1.services.html
index 6cf48e8..f5c29d0 100644
--- a/docs/dyn/servicemanagement_v1.services.html
+++ b/docs/dyn/servicemanagement_v1.services.html
@@ -476,6 +476,9 @@
 
 Operation<response: EnableServiceResponse>
 
+google.rpc.Status errors may contain a
+google.rpc.PreconditionFailure error detail.
+
 Args:
   serviceName: string, Name of the service to enable. Specifying an unknown service name will
 cause the request to fail. (required)
@@ -778,7 +781,9 @@
           },
         ],
         "displayName": "A String", # Optional. A concise name for the monitored resource type that might be
-            # displayed in user interfaces. For example, `"Google Cloud SQL Database"`.
+            # displayed in user interfaces. It should be a Title Cased Noun Phrase,
+            # without any article or other determiners. For example,
+            # `"Google Cloud SQL Database"`.
         "description": "A String", # Optional. A detailed description of the monitored resource type that might
             # be used in documentation.
         "name": "A String", # Optional. The resource name of the monitored resource descriptor:
@@ -1037,8 +1042,13 @@
                   #                bookstore_web.apps.googleusercontent.com
             },
           ],
-          "allowWithoutCredential": True or False, # Whether to allow requests without a credential.  If quota is enabled, an
-              # API key is required for such request to pass the quota check.
+          "allowWithoutCredential": True or False, # Whether to allow requests without a credential. The credential can be
+              # an OAuth token, Google cookies (first-party auth) or EndUserCreds.
+              #
+              # For requests without credentials, if the service control environment is
+              # specified, each incoming request **must** be associated with a service
+              # consumer. This can be done by passing an API key that belongs to a consumer
+              # project.
           "selector": "A String", # Selects the methods to which this rule applies.
               #
               # Refer to selector for syntax details.
diff --git a/docs/dyn/servicemanagement_v1.services.rollouts.html b/docs/dyn/servicemanagement_v1.services.rollouts.html
index 96b80b6..9d19f1c 100644
--- a/docs/dyn/servicemanagement_v1.services.rollouts.html
+++ b/docs/dyn/servicemanagement_v1.services.rollouts.html
@@ -94,6 +94,10 @@
 different backend services. For example, the logging configuration will be
 pushed to Google Cloud Logging.
 
+Please note that any previous pending and running Rollouts and associated
+Operations will be automatically cancelled so that the latest Rollout will
+not be blocked by previous Rollouts.
+
 Operation<response: Rollout>
 
 Args:
diff --git a/docs/epy/class-tree.html b/docs/epy/class-tree.html
index 148aafc..d3a8f58 100644
--- a/docs/epy/class-tree.html
+++ b/docs/epy/class-tree.html
@@ -163,7 +163,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient-module.html b/docs/epy/googleapiclient-module.html
index 5341916..f42aba9 100644
--- a/docs/epy/googleapiclient-module.html
+++ b/docs/epy/googleapiclient-module.html
@@ -57,7 +57,7 @@
 <h1 class="epydoc">Package googleapiclient</h1><p class="nomargin-top"><span class="codelink"><a href="googleapiclient-pysrc.html">source&nbsp;code</a></span></p>
 <hr />
 <div class="fields">      <p><strong>Version:</strong>
-        1.5.2
+        1.5.3
       </p>
 </div><!-- ==================== SUBMODULES ==================== -->
 <a name="section-Submodules"></a>
@@ -148,7 +148,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient-pysrc.html b/docs/epy/googleapiclient-pysrc.html
index 3ca9f9c..3467c4b 100644
--- a/docs/epy/googleapiclient-pysrc.html
+++ b/docs/epy/googleapiclient-pysrc.html
@@ -69,7 +69,7 @@
 <a name="L12"></a><tt class="py-lineno">12</tt>  <tt class="py-line"><tt class="py-comment"># See the License for the specific language governing permissions and</tt> </tt>
 <a name="L13"></a><tt class="py-lineno">13</tt>  <tt class="py-line"><tt class="py-comment"># limitations under the License.</tt> </tt>
 <a name="L14"></a><tt class="py-lineno">14</tt>  <tt class="py-line"> </tt>
-<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-docstring">"1.5.2"</tt> </tt>
+<a name="L15"></a><tt class="py-lineno">15</tt>  <tt class="py-line"><tt class="py-name">__version__</tt> <tt class="py-op">=</tt> <tt class="py-docstring">"1.5.3"</tt> </tt>
 <a name="L16"></a><tt class="py-lineno">16</tt>  <tt class="py-line"> </tt>
 <a name="L17"></a><tt class="py-lineno">17</tt>  <tt class="py-line"><tt class="py-comment"># Set default logging handler to avoid "No handler found" warnings.</tt> </tt>
 <a name="L18"></a><tt class="py-lineno">18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">logging</tt> </tt>
@@ -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 Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.NullHandler-class.html b/docs/epy/googleapiclient.NullHandler-class.html
index 58c418f..8556634 100644
--- a/docs/epy/googleapiclient.NullHandler-class.html
+++ b/docs/epy/googleapiclient.NullHandler-class.html
@@ -284,7 +284,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel-module.html b/docs/epy/googleapiclient.channel-module.html
index afd78ba..acf3908 100644
--- a/docs/epy/googleapiclient.channel-module.html
+++ b/docs/epy/googleapiclient.channel-module.html
@@ -455,7 +455,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel-pysrc.html b/docs/epy/googleapiclient.channel-pysrc.html
index 619e37a..29d3e3c 100644
--- a/docs/epy/googleapiclient.channel-pysrc.html
+++ b/docs/epy/googleapiclient.channel-pysrc.html
@@ -119,242 +119,241 @@
 <a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">uuid</tt> </tt>
 <a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
 <a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package googleapiclient=googleapiclient-module.html"><a title="googleapiclient" class="py-name" href="#" onclick="return doclink('link-0', 'googleapiclient', 'link-0');">googleapiclient</a></tt> <tt class="py-keyword">import</tt> <tt id="link-1" class="py-name" targets="Module googleapiclient.errors=googleapiclient.errors-module.html"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-1', 'errors', 'link-1');">errors</a></tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">util</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">six</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-comment"># Oauth2client &lt; 3 has the positional helper in 'util', &gt;= 3 has it</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-comment"># in '_helpers'.</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">  <tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">util</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">  <tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_helpers</tt> <tt class="py-keyword">as</tt> <tt class="py-name">util</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">six</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line"> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line"><tt class="py-comment"># Oauth2client &lt; 3 has the positional helper in 'util', &gt;= 3 has it</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line"><tt class="py-comment"># in '_helpers'.</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">  <tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">util</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">  <tt class="py-keyword">from</tt> <tt class="py-name">oauth2client</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_helpers</tt> <tt class="py-keyword">as</tt> <tt class="py-name">util</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
 <a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
-<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-comment"># The unix time epoch starts at midnight 1970.</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable googleapiclient.channel.EPOCH=googleapiclient.channel-module.html#EPOCH,Variable googleapiclient.discovery_cache.file_cache.EPOCH=googleapiclient.discovery_cache.file_cache-module.html#EPOCH"><a title="googleapiclient.channel.EPOCH
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-comment"># The unix time epoch starts at midnight 1970.</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable googleapiclient.channel.EPOCH=googleapiclient.channel-module.html#EPOCH,Variable googleapiclient.discovery_cache.file_cache.EPOCH=googleapiclient.discovery_cache.file_cache-module.html#EPOCH"><a title="googleapiclient.channel.EPOCH
 googleapiclient.discovery_cache.file_cache.EPOCH" class="py-name" href="#" onclick="return doclink('link-2', 'EPOCH', 'link-2');">EPOCH</a></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">utcfromtimestamp</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-comment"># Map the names of the parameters in the JSON channel description to</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt class="py-comment"># the parameter names we use in the Channel class.</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable googleapiclient.channel.CHANNEL_PARAMS=googleapiclient.channel-module.html#CHANNEL_PARAMS"><a title="googleapiclient.channel.CHANNEL_PARAMS" class="py-name" href="#" onclick="return doclink('link-3', 'CHANNEL_PARAMS', 'link-3');">CHANNEL_PARAMS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-string">'address'</tt><tt class="py-op">:</tt> <tt class="py-string">'address'</tt><tt class="py-op">,</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-string">'id'</tt><tt class="py-op">:</tt> <tt class="py-string">'id'</tt><tt class="py-op">,</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-string">'expiration'</tt><tt class="py-op">:</tt> <tt class="py-string">'expiration'</tt><tt class="py-op">,</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">    <tt class="py-string">'params'</tt><tt class="py-op">:</tt> <tt class="py-string">'params'</tt><tt class="py-op">,</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">    <tt class="py-string">'resourceId'</tt><tt class="py-op">:</tt> <tt class="py-string">'resource_id'</tt><tt class="py-op">,</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">    <tt class="py-string">'resourceUri'</tt><tt class="py-op">:</tt> <tt class="py-string">'resource_uri'</tt><tt class="py-op">,</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">    <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'type'</tt><tt class="py-op">,</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">    <tt class="py-string">'token'</tt><tt class="py-op">:</tt> <tt class="py-string">'token'</tt><tt class="py-op">,</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_CHANNEL_ID=googleapiclient.channel-module.html#X_GOOG_CHANNEL_ID"><a title="googleapiclient.channel.X_GOOG_CHANNEL_ID" class="py-name" href="#" onclick="return doclink('link-4', 'X_GOOG_CHANNEL_ID', 'link-4');">X_GOOG_CHANNEL_ID</a></tt>     <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-CHANNEL-ID'</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_MESSAGE_NUMBER=googleapiclient.channel-module.html#X_GOOG_MESSAGE_NUMBER"><a title="googleapiclient.channel.X_GOOG_MESSAGE_NUMBER" class="py-name" href="#" onclick="return doclink('link-5', 'X_GOOG_MESSAGE_NUMBER', 'link-5');">X_GOOG_MESSAGE_NUMBER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-MESSAGE-NUMBER'</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_RESOURCE_STATE=googleapiclient.channel-module.html#X_GOOG_RESOURCE_STATE"><a title="googleapiclient.channel.X_GOOG_RESOURCE_STATE" class="py-name" href="#" onclick="return doclink('link-6', 'X_GOOG_RESOURCE_STATE', 'link-6');">X_GOOG_RESOURCE_STATE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-RESOURCE-STATE'</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_RESOURCE_URI=googleapiclient.channel-module.html#X_GOOG_RESOURCE_URI"><a title="googleapiclient.channel.X_GOOG_RESOURCE_URI" class="py-name" href="#" onclick="return doclink('link-7', 'X_GOOG_RESOURCE_URI', 'link-7');">X_GOOG_RESOURCE_URI</a></tt>   <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-RESOURCE-URI'</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_RESOURCE_ID=googleapiclient.channel-module.html#X_GOOG_RESOURCE_ID"><a title="googleapiclient.channel.X_GOOG_RESOURCE_ID" class="py-name" href="#" onclick="return doclink('link-8', 'X_GOOG_RESOURCE_ID', 'link-8');">X_GOOG_RESOURCE_ID</a></tt>    <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-RESOURCE-ID'</tt> </tt>
-<a name="_upper_header_keys"></a><div id="_upper_header_keys-def"><a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"> </tt>
-<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line"> </tt>
-<a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="_upper_header_keys-toggle" onclick="return toggle('_upper_header_keys');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel-module.html#_upper_header_keys">_upper_header_keys</a><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="_upper_header_keys-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_upper_header_keys-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">  <tt class="py-name">new_headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">  <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">    <tt class="py-name">new_headers</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">.</tt><tt class="py-name">upper</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">v</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">new_headers</tt> </tt>
-</div><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
-<a name="Notification"></a><div id="Notification-def"><a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt> <a class="py-toggle" href="#" id="Notification-toggle" onclick="return toggle('Notification');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.channel.Notification-class.html">Notification</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Notification-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Notification-expanded"><a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Notification from a Channel.</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-docstring">  Notifications are not usually constructed directly, but are returned</tt> </tt>
-<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-docstring">  from functions like notification_from_headers().</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">  Attributes:</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring">    message_number: int, The unique id number of this notification.</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">    state: str, The state of the resource being monitored.</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">    uri: str, The address of the resource being monitored.</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">    resource_id: str, The unique identifier of the version of the resource at</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"><tt class="py-docstring">      this event.</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt class="py-name">positional</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="Notification.__init__"></a><div id="Notification.__init__-def"><a name="L119"></a><tt class="py-lineno">119</tt> <a class="py-toggle" href="#" id="Notification.__init__-toggle" onclick="return toggle('Notification.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Notification-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">message_number</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">,</tt> <tt class="py-param">resource_uri</tt><tt class="py-op">,</tt> <tt class="py-param">resource_id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Notification.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Notification.__init__-expanded"><a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">    <tt class="py-docstring">"""Notification constructor.</tt> </tt>
-<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">      message_number: int, The unique id number of this notification.</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">      state: str, The state of the resource being monitored. Can be one</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">        of "exists", "not_exists", or "sync".</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The address of the resource being monitored.</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">      resource_id: str, The identifier of the watched resource.</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">message_number</tt> <tt class="py-op">=</tt> <tt class="py-name">message_number</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">state</tt> <tt class="py-op">=</tt> <tt class="py-name">state</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_uri</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_id</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_id</tt> </tt>
-</div></div><a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"> </tt>
-<a name="Channel"></a><div id="Channel-def"><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line"> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt> <a class="py-toggle" href="#" id="Channel-toggle" onclick="return toggle('Channel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-class.html">Channel</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Channel-expanded"><a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Channel for notifications.</tt> </tt>
-<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">  Usually not constructed directly, instead it is returned from helper</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">  functions like new_webhook_channel().</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">    type: str, The type of delivery mechanism used by this channel. For</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">      example, 'web_hook'.</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring">    id: str, A UUID for the channel.</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">    token: str, An arbitrary string associated with the channel that</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring">      is delivered to the target address with each event delivered</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">      over this channel.</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">    address: str, The address of the receiving entity where events are</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">      delivered. Specific to the channel type.</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">    expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring">      channel will expire.</tt> </tt>
-<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">    params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
-<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">      controlling delivery channel behavior.</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">    resource_id: str, An opaque id that identifies the resource that is</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">      being watched. Stable across different API versions.</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">    resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt class="py-name">positional</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="Channel.__init__"></a><div id="Channel.__init__-def"><a name="L160"></a><tt class="py-lineno">160</tt> <a class="py-toggle" href="#" id="Channel.__init__-toggle" onclick="return toggle('Channel.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-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">type</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">token</tt><tt class="py-op">,</tt> <tt class="py-param">address</tt><tt class="py-op">,</tt> <tt class="py-param">expiration</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">               <tt class="py-param">params</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">resource_id</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">,</tt> <tt class="py-param">resource_uri</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Channel.__init__-expanded"><a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new Channel.</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">    In user code, this Channel constructor will not typically be called</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">    manually since there are functions for creating channels for each specific</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring">    type with a more customized set of arguments to pass.</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">      type: str, The type of delivery mechanism used by this channel. For</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">        example, 'web_hook'.</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">      id: str, A UUID for the channel.</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each event delivered</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">      address: str,  The address of the receiving entity where events are</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">        delivered. Specific to the channel type.</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">        channel will expire.</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-docstring">        controlling delivery channel behavior.</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"><tt class="py-docstring">      resource_id: str, An opaque id that identifies the resource that is</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-docstring">        being watched. Stable across different API versions.</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">id</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token</tt> <tt class="py-op">=</tt> <tt class="py-name">token</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">address</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expiration</tt> <tt class="py-op">=</tt> <tt class="py-name">expiration</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</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">params</tt> </tt>
-<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_id</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_id</tt> </tt>
-<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_uri</tt> </tt>
-</div><a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt>
-<a name="Channel.body"></a><div id="Channel.body-def"><a name="L194"></a><tt class="py-lineno">194</tt> <a class="py-toggle" href="#" id="Channel.body-toggle" onclick="return toggle('Channel.body');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-class.html#body">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="Channel.body-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Channel.body-expanded"><a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt class="py-docstring">"""Build a body from the Channel.</tt> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-docstring">    Constructs a dictionary that's appropriate for passing into watch()</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"><tt class="py-docstring">    methods as the value of body argument.</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
-<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-docstring">      A dictionary representation of the channel.</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-string">'id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">,</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-string">'token'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token</tt><tt class="py-op">,</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> </tt>
-<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-string">'address'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">address</tt> </tt>
-<a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
-<a name="L209"></a><tt class="py-lineno">209</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">params</tt><tt class="py-op">:</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'params'</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">params</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</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">resource_id</tt><tt class="py-op">:</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'resourceId'</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">resource_id</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</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">resource_uri</tt><tt class="py-op">:</tt> </tt>
-<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'resourceUri'</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">resource_uri</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</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">expiration</tt><tt class="py-op">:</tt> </tt>
-<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'expiration'</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">expiration</tt> </tt>
-<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"> </tt>
-<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
-</div><a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"> </tt>
-<a name="Channel.update"></a><div id="Channel.update-def"><a name="L220"></a><tt class="py-lineno">220</tt> <a class="py-toggle" href="#" id="Channel.update-toggle" onclick="return toggle('Channel.update');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-class.html#update">update</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Channel.update-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Channel.update-expanded"><a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">    <tt class="py-docstring">"""Update a channel with information from the response of watch().</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-docstring">    When a request is sent to watch() a resource, the response returned</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring">    from the watch() request is a dictionary with updated channel information,</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring">    such as the resource_id, which is needed when stopping a subscription.</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"><tt class="py-docstring">      resp: dict, The response from a watch() method.</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">json_name</tt><tt class="py-op">,</tt> <tt class="py-name">param_name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="googleapiclient.channel.CHANNEL_PARAMS" class="py-name" href="#" onclick="return doclink('link-9', 'CHANNEL_PARAMS', 'link-3');">CHANNEL_PARAMS</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method googleapiclient.discovery_cache.appengine_memcache.Cache.get()=googleapiclient.discovery_cache.appengine_memcache.Cache-class.html#get,Method googleapiclient.discovery_cache.base.Cache.get()=googleapiclient.discovery_cache.base.Cache-class.html#get,Method googleapiclient.discovery_cache.file_cache.Cache.get()=googleapiclient.discovery_cache.file_cache.Cache-class.html#get,Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.discovery_cache.appengine_memcache.Cache.get
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"><tt class="py-comment"># Map the names of the parameters in the JSON channel description to</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"><tt class="py-comment"># the parameter names we use in the Channel class.</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable googleapiclient.channel.CHANNEL_PARAMS=googleapiclient.channel-module.html#CHANNEL_PARAMS"><a title="googleapiclient.channel.CHANNEL_PARAMS" class="py-name" href="#" onclick="return doclink('link-3', 'CHANNEL_PARAMS', 'link-3');">CHANNEL_PARAMS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">    <tt class="py-string">'address'</tt><tt class="py-op">:</tt> <tt class="py-string">'address'</tt><tt class="py-op">,</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">    <tt class="py-string">'id'</tt><tt class="py-op">:</tt> <tt class="py-string">'id'</tt><tt class="py-op">,</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-string">'expiration'</tt><tt class="py-op">:</tt> <tt class="py-string">'expiration'</tt><tt class="py-op">,</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-string">'params'</tt><tt class="py-op">:</tt> <tt class="py-string">'params'</tt><tt class="py-op">,</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">    <tt class="py-string">'resourceId'</tt><tt class="py-op">:</tt> <tt class="py-string">'resource_id'</tt><tt class="py-op">,</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">    <tt class="py-string">'resourceUri'</tt><tt class="py-op">:</tt> <tt class="py-string">'resource_uri'</tt><tt class="py-op">,</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">    <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-string">'type'</tt><tt class="py-op">,</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">    <tt class="py-string">'token'</tt><tt class="py-op">:</tt> <tt class="py-string">'token'</tt><tt class="py-op">,</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">    <tt class="py-op">}</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line"> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line"><tt id="link-4" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_CHANNEL_ID=googleapiclient.channel-module.html#X_GOOG_CHANNEL_ID"><a title="googleapiclient.channel.X_GOOG_CHANNEL_ID" class="py-name" href="#" onclick="return doclink('link-4', 'X_GOOG_CHANNEL_ID', 'link-4');">X_GOOG_CHANNEL_ID</a></tt>     <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-CHANNEL-ID'</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line"><tt id="link-5" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_MESSAGE_NUMBER=googleapiclient.channel-module.html#X_GOOG_MESSAGE_NUMBER"><a title="googleapiclient.channel.X_GOOG_MESSAGE_NUMBER" class="py-name" href="#" onclick="return doclink('link-5', 'X_GOOG_MESSAGE_NUMBER', 'link-5');">X_GOOG_MESSAGE_NUMBER</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-MESSAGE-NUMBER'</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line"><tt id="link-6" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_RESOURCE_STATE=googleapiclient.channel-module.html#X_GOOG_RESOURCE_STATE"><a title="googleapiclient.channel.X_GOOG_RESOURCE_STATE" class="py-name" href="#" onclick="return doclink('link-6', 'X_GOOG_RESOURCE_STATE', 'link-6');">X_GOOG_RESOURCE_STATE</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-RESOURCE-STATE'</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line"><tt id="link-7" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_RESOURCE_URI=googleapiclient.channel-module.html#X_GOOG_RESOURCE_URI"><a title="googleapiclient.channel.X_GOOG_RESOURCE_URI" class="py-name" href="#" onclick="return doclink('link-7', 'X_GOOG_RESOURCE_URI', 'link-7');">X_GOOG_RESOURCE_URI</a></tt>   <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-RESOURCE-URI'</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line"><tt id="link-8" class="py-name" targets="Variable googleapiclient.channel.X_GOOG_RESOURCE_ID=googleapiclient.channel-module.html#X_GOOG_RESOURCE_ID"><a title="googleapiclient.channel.X_GOOG_RESOURCE_ID" class="py-name" href="#" onclick="return doclink('link-8', 'X_GOOG_RESOURCE_ID', 'link-8');">X_GOOG_RESOURCE_ID</a></tt>    <tt class="py-op">=</tt> <tt class="py-string">'X-GOOG-RESOURCE-ID'</tt> </tt>
+<a name="_upper_header_keys"></a><div id="_upper_header_keys-def"><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line"> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <a class="py-toggle" href="#" id="_upper_header_keys-toggle" onclick="return toggle('_upper_header_keys');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel-module.html#_upper_header_keys">_upper_header_keys</a><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="_upper_header_keys-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_upper_header_keys-expanded"><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">  <tt class="py-name">new_headers</tt> <tt class="py-op">=</tt> <tt class="py-op">{</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">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt class="py-name">v</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">    <tt class="py-name">new_headers</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">.</tt><tt class="py-name">upper</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">v</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">  <tt class="py-keyword">return</tt> <tt class="py-name">new_headers</tt> </tt>
+</div><a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line"> </tt>
+<a name="Notification"></a><div id="Notification-def"><a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line"> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <a class="py-toggle" href="#" id="Notification-toggle" onclick="return toggle('Notification');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.channel.Notification-class.html">Notification</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Notification-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Notification-expanded"><a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Notification from a Channel.</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"><tt class="py-docstring">  Notifications are not usually constructed directly, but are returned</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line"><tt class="py-docstring">  from functions like notification_from_headers().</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring">    message_number: int, The unique id number of this notification.</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line"><tt class="py-docstring">    state: str, The state of the resource being monitored.</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line"><tt class="py-docstring">    uri: str, The address of the resource being monitored.</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line"><tt class="py-docstring">    resource_id: str, The unique identifier of the version of the resource at</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line"><tt class="py-docstring">      this event.</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-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt class="py-name">positional</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="Notification.__init__"></a><div id="Notification.__init__-def"><a name="L118"></a><tt class="py-lineno">118</tt> <a class="py-toggle" href="#" id="Notification.__init__-toggle" onclick="return toggle('Notification.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Notification-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">message_number</tt><tt class="py-op">,</tt> <tt class="py-param">state</tt><tt class="py-op">,</tt> <tt class="py-param">resource_uri</tt><tt class="py-op">,</tt> <tt class="py-param">resource_id</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Notification.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Notification.__init__-expanded"><a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">    <tt class="py-docstring">"""Notification constructor.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"><tt class="py-docstring">      message_number: int, The unique id number of this notification.</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"><tt class="py-docstring">      state: str, The state of the resource being monitored. Can be one</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line"><tt class="py-docstring">        of "exists", "not_exists", or "sync".</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The address of the resource being monitored.</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line"><tt class="py-docstring">      resource_id: str, The identifier of the watched resource.</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">message_number</tt> <tt class="py-op">=</tt> <tt class="py-name">message_number</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">state</tt> <tt class="py-op">=</tt> <tt class="py-name">state</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_uri</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_id</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_id</tt> </tt>
+</div></div><a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
+<a name="Channel"></a><div id="Channel-def"><a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line"> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <a class="py-toggle" href="#" id="Channel-toggle" onclick="return toggle('Channel');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-class.html">Channel</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="Channel-expanded"><a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">  <tt class="py-docstring">"""A Channel for notifications.</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">  Usually not constructed directly, instead it is returned from helper</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">  functions like new_webhook_channel().</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring">  Attributes:</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"><tt class="py-docstring">    type: str, The type of delivery mechanism used by this channel. For</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line"><tt class="py-docstring">      example, 'web_hook'.</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line"><tt class="py-docstring">    id: str, A UUID for the channel.</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"><tt class="py-docstring">    token: str, An arbitrary string associated with the channel that</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"><tt class="py-docstring">      is delivered to the target address with each event delivered</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line"><tt class="py-docstring">      over this channel.</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">    address: str, The address of the receiving entity where events are</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">      delivered. Specific to the channel type.</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">    expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">      channel will expire.</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring">    params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">      controlling delivery channel behavior.</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">    resource_id: str, An opaque id that identifies the resource that is</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">      being watched. Stable across different API versions.</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line"><tt class="py-docstring">    resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line"> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">  <tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt class="py-name">positional</tt><tt class="py-op">(</tt><tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="Channel.__init__"></a><div id="Channel.__init__-def"><a name="L159"></a><tt class="py-lineno">159</tt> <a class="py-toggle" href="#" id="Channel.__init__-toggle" onclick="return toggle('Channel.__init__');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-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">type</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">token</tt><tt class="py-op">,</tt> <tt class="py-param">address</tt><tt class="py-op">,</tt> <tt class="py-param">expiration</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">               <tt class="py-param">params</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">resource_id</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">,</tt> <tt class="py-param">resource_uri</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.__init__-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Channel.__init__-expanded"><a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new Channel.</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-docstring">    In user code, this Channel constructor will not typically be called</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-docstring">    manually since there are functions for creating channels for each specific</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"><tt class="py-docstring">    type with a more customized set of arguments to pass.</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">      type: str, The type of delivery mechanism used by this channel. For</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">        example, 'web_hook'.</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">      id: str, A UUID for the channel.</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each event delivered</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"><tt class="py-docstring">      address: str,  The address of the receiving entity where events are</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line"><tt class="py-docstring">        delivered. Specific to the channel type.</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: int, The time, in milliseconds from the epoch, when this</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">        channel will expire.</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, A dictionary of string to string, with additional parameters</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring">        controlling delivery channel behavior.</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line"><tt class="py-docstring">      resource_id: str, An opaque id that identifies the resource that is</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"><tt class="py-docstring">        being watched. Stable across different API versions.</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line"><tt class="py-docstring">      resource_uri: str, The canonicalized ID of the watched resource.</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">type</tt> <tt class="py-op">=</tt> <tt class="py-name">type</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">id</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token</tt> <tt class="py-op">=</tt> <tt class="py-name">token</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">address</tt> <tt class="py-op">=</tt> <tt class="py-name">address</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">expiration</tt> <tt class="py-op">=</tt> <tt class="py-name">expiration</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</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">params</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_id</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_id</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">resource_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">resource_uri</tt> </tt>
+</div><a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"> </tt>
+<a name="Channel.body"></a><div id="Channel.body-def"><a name="L193"></a><tt class="py-lineno">193</tt> <a class="py-toggle" href="#" id="Channel.body-toggle" onclick="return toggle('Channel.body');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-class.html#body">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="Channel.body-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Channel.body-expanded"><a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt class="py-docstring">"""Build a body from the Channel.</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"><tt class="py-docstring">    Constructs a dictionary that's appropriate for passing into watch()</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"><tt class="py-docstring">    methods as the value of body argument.</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line"><tt class="py-docstring">    Returns:</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"><tt class="py-docstring">      A dictionary representation of the channel.</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-string">'id'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">,</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-string">'token'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">token</tt><tt class="py-op">,</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-string">'type'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">type</tt><tt class="py-op">,</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-string">'address'</tt><tt class="py-op">:</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">address</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-op">}</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</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">params</tt><tt class="py-op">:</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'params'</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">params</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</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">resource_id</tt><tt class="py-op">:</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'resourceId'</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">resource_id</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</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">resource_uri</tt><tt class="py-op">:</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'resourceUri'</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">resource_uri</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</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">expiration</tt><tt class="py-op">:</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">      <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-string">'expiration'</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">expiration</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+</div><a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"> </tt>
+<a name="Channel.update"></a><div id="Channel.update-def"><a name="L219"></a><tt class="py-lineno">219</tt> <a class="py-toggle" href="#" id="Channel.update-toggle" onclick="return toggle('Channel.update');">-</a><tt class="py-line">  <tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel.Channel-class.html#update">update</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">resp</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Channel.update-collapsed" style="display:none;" pad="+++" indent="++++++"></div><div id="Channel.update-expanded"><a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">    <tt class="py-docstring">"""Update a channel with information from the response of watch().</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"><tt class="py-docstring">    When a request is sent to watch() a resource, the response returned</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-docstring">    from the watch() request is a dictionary with updated channel information,</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line"><tt class="py-docstring">    such as the resource_id, which is needed when stopping a subscription.</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line"><tt class="py-docstring">      resp: dict, The response from a watch() method.</tt> </tt>
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">json_name</tt><tt class="py-op">,</tt> <tt class="py-name">param_name</tt> <tt class="py-keyword">in</tt> <tt class="py-name">six</tt><tt class="py-op">.</tt><tt class="py-name">iteritems</tt><tt class="py-op">(</tt><tt id="link-9" class="py-name"><a title="googleapiclient.channel.CHANNEL_PARAMS" class="py-name" href="#" onclick="return doclink('link-9', 'CHANNEL_PARAMS', 'link-3');">CHANNEL_PARAMS</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">      <tt class="py-name">value</tt> <tt class="py-op">=</tt> <tt class="py-name">resp</tt><tt class="py-op">.</tt><tt id="link-10" class="py-name" targets="Method googleapiclient.discovery_cache.appengine_memcache.Cache.get()=googleapiclient.discovery_cache.appengine_memcache.Cache-class.html#get,Method googleapiclient.discovery_cache.base.Cache.get()=googleapiclient.discovery_cache.base.Cache-class.html#get,Method googleapiclient.discovery_cache.file_cache.Cache.get()=googleapiclient.discovery_cache.file_cache.Cache-class.html#get,Method googleapiclient.schema.Schemas.get()=googleapiclient.schema.Schemas-class.html#get"><a title="googleapiclient.discovery_cache.appengine_memcache.Cache.get
 googleapiclient.discovery_cache.base.Cache.get
 googleapiclient.discovery_cache.file_cache.Cache.get
 googleapiclient.schema.Schemas.get" class="py-name" href="#" onclick="return doclink('link-10', 'get', 'link-10');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">json_name</tt><tt class="py-op">)</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">value</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="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">param_name</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"> </tt>
-<a name="notification_from_headers"></a><div id="notification_from_headers-def"><a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line"> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt> <a class="py-toggle" href="#" id="notification_from_headers-toggle" onclick="return toggle('notification_from_headers');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel-module.html#notification_from_headers">notification_from_headers</a><tt class="py-op">(</tt><tt class="py-param">channel</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="notification_from_headers-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="notification_from_headers-expanded"><a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">  <tt class="py-docstring">"""Parse a notification from the webhook request headers, validate</tt> </tt>
-<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line"><tt class="py-docstring">    the notification, and return a Notification object.</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring">  Args:</tt> </tt>
-<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-docstring">    channel: Channel, The channel that the notification is associated with.</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">    headers: dict, A dictionary like object that contains the request headers</tt> </tt>
-<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring">      from the webhook HTTP request.</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-docstring">    A Notification object.</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring">    errors.InvalidNotificationError if the notification is invalid.</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-docstring">    ValueError if the X-GOOG-MESSAGE-NUMBER can't be converted to an int.</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">  <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name" targets="Function googleapiclient.channel._upper_header_keys()=googleapiclient.channel-module.html#_upper_header_keys"><a title="googleapiclient.channel._upper_header_keys" class="py-name" href="#" onclick="return doclink('link-11', '_upper_header_keys', 'link-11');">_upper_header_keys</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</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">channel_id</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-12" class="py-name"><a title="googleapiclient.channel.X_GOOG_CHANNEL_ID" class="py-name" href="#" onclick="return doclink('link-12', 'X_GOOG_CHANNEL_ID', 'link-4');">X_GOOG_CHANNEL_ID</a></tt><tt class="py-op">]</tt> </tt>
-<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">  <tt class="py-keyword">if</tt> <tt id="link-13" class="py-name" targets="Module googleapiclient.channel=googleapiclient.channel-module.html"><a title="googleapiclient.channel" class="py-name" href="#" onclick="return doclink('link-13', 'channel', 'link-13');">channel</a></tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-op">!=</tt> <tt class="py-name">channel_id</tt><tt class="py-op">:</tt> </tt>
-<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-14" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-14', 'errors', 'link-1');">errors</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Class googleapiclient.errors.InvalidNotificationError=googleapiclient.errors.InvalidNotificationError-class.html"><a title="googleapiclient.errors.InvalidNotificationError" class="py-name" href="#" onclick="return doclink('link-15', 'InvalidNotificationError', 'link-15');">InvalidNotificationError</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-string">'Channel id mismatch: %s != %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="googleapiclient.channel" class="py-name" href="#" onclick="return doclink('link-16', 'channel', 'link-13');">channel</a></tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">,</tt> <tt class="py-name">channel_id</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-keyword">else</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">message_number</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-17" class="py-name"><a title="googleapiclient.channel.X_GOOG_MESSAGE_NUMBER" class="py-name" href="#" onclick="return doclink('link-17', 'X_GOOG_MESSAGE_NUMBER', 'link-5');">X_GOOG_MESSAGE_NUMBER</a></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">state</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-18" class="py-name"><a title="googleapiclient.channel.X_GOOG_RESOURCE_STATE" class="py-name" href="#" onclick="return doclink('link-18', 'X_GOOG_RESOURCE_STATE', 'link-6');">X_GOOG_RESOURCE_STATE</a></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">resource_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-19" class="py-name"><a title="googleapiclient.channel.X_GOOG_RESOURCE_URI" class="py-name" href="#" onclick="return doclink('link-19', 'X_GOOG_RESOURCE_URI', 'link-7');">X_GOOG_RESOURCE_URI</a></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">resource_id</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-20" class="py-name"><a title="googleapiclient.channel.X_GOOG_RESOURCE_ID" class="py-name" href="#" onclick="return doclink('link-20', 'X_GOOG_RESOURCE_ID', 'link-8');">X_GOOG_RESOURCE_ID</a></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">return</tt> <tt id="link-21" class="py-name" targets="Class googleapiclient.channel.Notification=googleapiclient.channel.Notification-class.html"><a title="googleapiclient.channel.Notification" class="py-name" href="#" onclick="return doclink('link-21', 'Notification', 'link-21');">Notification</a></tt><tt class="py-op">(</tt><tt class="py-name">message_number</tt><tt class="py-op">,</tt> <tt class="py-name">state</tt><tt class="py-op">,</tt> <tt class="py-name">resource_uri</tt><tt class="py-op">,</tt> <tt class="py-name">resource_id</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"> </tt>
-<a name="new_webhook_channel"></a><div id="new_webhook_channel-def"><a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt class="py-name">positional</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt> <a class="py-toggle" href="#" id="new_webhook_channel-toggle" onclick="return toggle('new_webhook_channel');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel-module.html#new_webhook_channel">new_webhook_channel</a><tt class="py-op">(</tt><tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">token</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">expiration</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">params</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="new_webhook_channel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="new_webhook_channel-expanded"><a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new webhook Channel.</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-docstring">    Args:</tt> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"><tt class="py-docstring">      url: str, URL to post notifications to.</tt> </tt>
-<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
-<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each notification delivered</tt> </tt>
-<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: datetime.datetime, A time in the future when the channel</tt> </tt>
-<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line"><tt class="py-docstring">        should expire. Can also be None if the subscription should use the</tt> </tt>
-<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line"><tt class="py-docstring">        default expiration. Note that different services may have different</tt> </tt>
-<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"><tt class="py-docstring">        limits on how long a subscription lasts. Check the response from the</tt> </tt>
-<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line"><tt class="py-docstring">        watch() method to see the value the service has set for an expiration</tt> </tt>
-<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line"><tt class="py-docstring">        time.</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, Extra parameters to pass on channel creation. Currently</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"><tt class="py-docstring">        not used for webhook channels.</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">    <tt class="py-name">expiration_ms</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">expiration</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">delta</tt> <tt class="py-op">=</tt> <tt class="py-name">expiration</tt> <tt class="py-op">-</tt> <tt id="link-22" class="py-name"><a title="googleapiclient.channel.EPOCH
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">value</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="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">        <tt class="py-name">setattr</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">param_name</tt><tt class="py-op">,</tt> <tt class="py-name">value</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line"> </tt>
+<a name="notification_from_headers"></a><div id="notification_from_headers-def"><a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line"> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <a class="py-toggle" href="#" id="notification_from_headers-toggle" onclick="return toggle('notification_from_headers');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel-module.html#notification_from_headers">notification_from_headers</a><tt class="py-op">(</tt><tt class="py-param">channel</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="notification_from_headers-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="notification_from_headers-expanded"><a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">  <tt class="py-docstring">"""Parse a notification from the webhook request headers, validate</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line"><tt class="py-docstring">    the notification, and return a Notification object.</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 class="py-docstring">  Args:</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line"><tt class="py-docstring">    channel: Channel, The channel that the notification is associated with.</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"><tt class="py-docstring">    headers: dict, A dictionary like object that contains the request headers</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"><tt class="py-docstring">      from the webhook HTTP request.</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line"><tt class="py-docstring">  Returns:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line"><tt class="py-docstring">    A Notification object.</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"><tt class="py-docstring">  Raises:</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"><tt class="py-docstring">    errors.InvalidNotificationError if the notification is invalid.</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"><tt class="py-docstring">    ValueError if the X-GOOG-MESSAGE-NUMBER can't be converted to an int.</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-docstring">  """</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">  <tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name" targets="Function googleapiclient.channel._upper_header_keys()=googleapiclient.channel-module.html#_upper_header_keys"><a title="googleapiclient.channel._upper_header_keys" class="py-name" href="#" onclick="return doclink('link-11', '_upper_header_keys', 'link-11');">_upper_header_keys</a></tt><tt class="py-op">(</tt><tt class="py-name">headers</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">channel_id</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-12" class="py-name"><a title="googleapiclient.channel.X_GOOG_CHANNEL_ID" class="py-name" href="#" onclick="return doclink('link-12', 'X_GOOG_CHANNEL_ID', 'link-4');">X_GOOG_CHANNEL_ID</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-keyword">if</tt> <tt id="link-13" class="py-name" targets="Module googleapiclient.channel=googleapiclient.channel-module.html"><a title="googleapiclient.channel" class="py-name" href="#" onclick="return doclink('link-13', 'channel', 'link-13');">channel</a></tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-op">!=</tt> <tt class="py-name">channel_id</tt><tt class="py-op">:</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt id="link-14" class="py-name"><a title="googleapiclient.errors" class="py-name" href="#" onclick="return doclink('link-14', 'errors', 'link-1');">errors</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Class googleapiclient.errors.InvalidNotificationError=googleapiclient.errors.InvalidNotificationError-class.html"><a title="googleapiclient.errors.InvalidNotificationError" class="py-name" href="#" onclick="return doclink('link-15', 'InvalidNotificationError', 'link-15');">InvalidNotificationError</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-string">'Channel id mismatch: %s != %s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-16" class="py-name"><a title="googleapiclient.channel" class="py-name" href="#" onclick="return doclink('link-16', 'channel', 'link-13');">channel</a></tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">,</tt> <tt class="py-name">channel_id</tt><tt class="py-op">)</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">else</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">message_number</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-17" class="py-name"><a title="googleapiclient.channel.X_GOOG_MESSAGE_NUMBER" class="py-name" href="#" onclick="return doclink('link-17', 'X_GOOG_MESSAGE_NUMBER', 'link-5');">X_GOOG_MESSAGE_NUMBER</a></tt><tt class="py-op">]</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">state</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-18" class="py-name"><a title="googleapiclient.channel.X_GOOG_RESOURCE_STATE" class="py-name" href="#" onclick="return doclink('link-18', 'X_GOOG_RESOURCE_STATE', 'link-6');">X_GOOG_RESOURCE_STATE</a></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">resource_uri</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-19" class="py-name"><a title="googleapiclient.channel.X_GOOG_RESOURCE_URI" class="py-name" href="#" onclick="return doclink('link-19', 'X_GOOG_RESOURCE_URI', 'link-7');">X_GOOG_RESOURCE_URI</a></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">resource_id</tt> <tt class="py-op">=</tt> <tt class="py-name">headers</tt><tt class="py-op">[</tt><tt id="link-20" class="py-name"><a title="googleapiclient.channel.X_GOOG_RESOURCE_ID" class="py-name" href="#" onclick="return doclink('link-20', 'X_GOOG_RESOURCE_ID', 'link-8');">X_GOOG_RESOURCE_ID</a></tt><tt class="py-op">]</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-21" class="py-name" targets="Class googleapiclient.channel.Notification=googleapiclient.channel.Notification-class.html"><a title="googleapiclient.channel.Notification" class="py-name" href="#" onclick="return doclink('link-21', 'Notification', 'link-21');">Notification</a></tt><tt class="py-op">(</tt><tt class="py-name">message_number</tt><tt class="py-op">,</tt> <tt class="py-name">state</tt><tt class="py-op">,</tt> <tt class="py-name">resource_uri</tt><tt class="py-op">,</tt> <tt class="py-name">resource_id</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line"> </tt>
+<a name="new_webhook_channel"></a><div id="new_webhook_channel-def"><a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line"> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-decorator">@</tt><tt class="py-decorator">util</tt><tt class="py-op">.</tt><tt class="py-name">positional</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <a class="py-toggle" href="#" id="new_webhook_channel-toggle" onclick="return toggle('new_webhook_channel');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="googleapiclient.channel-module.html#new_webhook_channel">new_webhook_channel</a><tt class="py-op">(</tt><tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">token</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">expiration</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">params</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="new_webhook_channel-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="new_webhook_channel-expanded"><a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt class="py-docstring">"""Create a new webhook Channel.</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line"><tt class="py-docstring">    Args:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"><tt class="py-docstring">      url: str, URL to post notifications to.</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"><tt class="py-docstring">      token: str, An arbitrary string associated with the channel that</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line"><tt class="py-docstring">        is delivered to the target address with each notification delivered</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line"><tt class="py-docstring">        over this channel.</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line"><tt class="py-docstring">      expiration: datetime.datetime, A time in the future when the channel</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"><tt class="py-docstring">        should expire. Can also be None if the subscription should use the</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt>  <tt class="py-line"><tt class="py-docstring">        default expiration. Note that different services may have different</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line"><tt class="py-docstring">        limits on how long a subscription lasts. Check the response from the</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"><tt class="py-docstring">        watch() method to see the value the service has set for an expiration</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line"><tt class="py-docstring">        time.</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line"><tt class="py-docstring">      params: dict, Extra parameters to pass on channel creation. Currently</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"><tt class="py-docstring">        not used for webhook channels.</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">    <tt class="py-name">expiration_ms</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">expiration</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">delta</tt> <tt class="py-op">=</tt> <tt class="py-name">expiration</tt> <tt class="py-op">-</tt> <tt id="link-22" class="py-name"><a title="googleapiclient.channel.EPOCH
 googleapiclient.discovery_cache.file_cache.EPOCH" class="py-name" href="#" onclick="return doclink('link-22', 'EPOCH', 'link-2');">EPOCH</a></tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">      <tt class="py-name">expiration_ms</tt> <tt class="py-op">=</tt> <tt class="py-name">delta</tt><tt class="py-op">.</tt><tt class="py-name">microseconds</tt><tt class="py-op">/</tt><tt class="py-number">1000</tt> <tt class="py-op">+</tt> <tt class="py-op">(</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">          <tt class="py-name">delta</tt><tt class="py-op">.</tt><tt class="py-name">seconds</tt> <tt class="py-op">+</tt> <tt class="py-name">delta</tt><tt class="py-op">.</tt><tt class="py-name">days</tt><tt class="py-op">*</tt><tt class="py-number">24</tt><tt class="py-op">*</tt><tt class="py-number">3600</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-number">1000</tt> </tt>
-<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">expiration_ms</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</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">expiration_ms</tt> <tt class="py-op">=</tt> <tt class="py-number">0</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-keyword">return</tt> <tt id="link-23" class="py-name" targets="Class googleapiclient.channel.Channel=googleapiclient.channel.Channel-class.html"><a title="googleapiclient.channel.Channel" class="py-name" href="#" onclick="return doclink('link-23', 'Channel', 'link-23');">Channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'web_hook'</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">uuid</tt><tt class="py-op">.</tt><tt class="py-name">uuid4</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">                   <tt class="py-name">token</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">expiration</tt><tt class="py-op">=</tt><tt class="py-name">expiration_ms</tt><tt class="py-op">,</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">                   <tt class="py-name">params</tt><tt class="py-op">=</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">      <tt class="py-name">expiration_ms</tt> <tt class="py-op">=</tt> <tt class="py-name">delta</tt><tt class="py-op">.</tt><tt class="py-name">microseconds</tt><tt class="py-op">/</tt><tt class="py-number">1000</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">delta</tt><tt class="py-op">.</tt><tt class="py-name">seconds</tt> <tt class="py-op">+</tt> <tt class="py-name">delta</tt><tt class="py-op">.</tt><tt class="py-name">days</tt><tt class="py-op">*</tt><tt class="py-number">24</tt><tt class="py-op">*</tt><tt class="py-number">3600</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-number">1000</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">      <tt class="py-keyword">if</tt> <tt class="py-name">expiration_ms</tt> <tt class="py-op">&lt;</tt> <tt class="py-number">0</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">expiration_ms</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line"> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-23" class="py-name" targets="Class googleapiclient.channel.Channel=googleapiclient.channel.Channel-class.html"><a title="googleapiclient.channel.Channel" class="py-name" href="#" onclick="return doclink('link-23', 'Channel', 'link-23');">Channel</a></tt><tt class="py-op">(</tt><tt class="py-string">'web_hook'</tt><tt class="py-op">,</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">uuid</tt><tt class="py-op">.</tt><tt class="py-name">uuid4</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">                   <tt class="py-name">token</tt><tt class="py-op">,</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">expiration</tt><tt class="py-op">=</tt><tt class="py-name">expiration_ms</tt><tt class="py-op">,</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">                   <tt class="py-name">params</tt><tt class="py-op">=</tt><tt class="py-name">params</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -387,7 +386,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel.Channel-class.html b/docs/epy/googleapiclient.channel.Channel-class.html
index dc8bbd9..e216bce 100644
--- a/docs/epy/googleapiclient.channel.Channel-class.html
+++ b/docs/epy/googleapiclient.channel.Channel-class.html
@@ -376,7 +376,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.channel.Notification-class.html b/docs/epy/googleapiclient.channel.Notification-class.html
index 96cf7a7..0cddd46 100644
--- a/docs/epy/googleapiclient.channel.Notification-class.html
+++ b/docs/epy/googleapiclient.channel.Notification-class.html
@@ -249,7 +249,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery-module.html b/docs/epy/googleapiclient.discovery-module.html
index 8cf3503..3e01865 100644
--- a/docs/epy/googleapiclient.discovery-module.html
+++ b/docs/epy/googleapiclient.discovery-module.html
@@ -1221,7 +1221,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery-pysrc.html b/docs/epy/googleapiclient.discovery-pysrc.html
index c73c3a2..090f505 100644
--- a/docs/epy/googleapiclient.discovery-pysrc.html
+++ b/docs/epy/googleapiclient.discovery-pysrc.html
@@ -1366,7 +1366,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery.Resource-class.html b/docs/epy/googleapiclient.discovery.Resource-class.html
index 01917a2..9e2e126 100644
--- a/docs/epy/googleapiclient.discovery.Resource-class.html
+++ b/docs/epy/googleapiclient.discovery.Resource-class.html
@@ -458,7 +458,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html b/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html
index 7386387..b6b7def 100644
--- a/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.html
+++ b/docs/epy/googleapiclient.discovery.ResourceMethodParameters-class.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 Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery._BytesGenerator-class.html b/docs/epy/googleapiclient.discovery._BytesGenerator-class.html
index 8f06f26..08b9b3b 100644
--- a/docs/epy/googleapiclient.discovery._BytesGenerator-class.html
+++ b/docs/epy/googleapiclient.discovery._BytesGenerator-class.html
@@ -116,7 +116,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache-module.html b/docs/epy/googleapiclient.discovery_cache-module.html
index e94854c..cb3ddf6 100644
--- a/docs/epy/googleapiclient.discovery_cache-module.html
+++ b/docs/epy/googleapiclient.discovery_cache-module.html
@@ -225,7 +225,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache-pysrc.html b/docs/epy/googleapiclient.discovery_cache-pysrc.html
index 9bfbbb6..49bac03 100644
--- a/docs/epy/googleapiclient.discovery_cache-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache-pysrc.html
@@ -144,7 +144,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.html b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.html
index a61a313..3533d3d 100644
--- a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.html
+++ b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-module.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 Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html
index e6d823e..8992dbc 100644
--- a/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache.appengine_memcache-pysrc.html
@@ -165,7 +165,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html b/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html
index 0b88de3..0969619 100644
--- a/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html
+++ b/docs/epy/googleapiclient.discovery_cache.appengine_memcache.Cache-class.html
@@ -358,7 +358,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.base-module.html b/docs/epy/googleapiclient.discovery_cache.base-module.html
index f055f94..2cdc3e9 100644
--- a/docs/epy/googleapiclient.discovery_cache.base-module.html
+++ b/docs/epy/googleapiclient.discovery_cache.base-module.html
@@ -114,7 +114,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.base-pysrc.html b/docs/epy/googleapiclient.discovery_cache.base-pysrc.html
index 3841528..16116bc 100644
--- a/docs/epy/googleapiclient.discovery_cache.base-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache.base-pysrc.html
@@ -135,7 +135,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html b/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html
index cdd7a91..45b6aac 100644
--- a/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html
+++ b/docs/epy/googleapiclient.discovery_cache.base.Cache-class.html
@@ -309,7 +309,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.file_cache-module.html b/docs/epy/googleapiclient.discovery_cache.file_cache-module.html
index ed7b907..7170425 100644
--- a/docs/epy/googleapiclient.discovery_cache.file_cache-module.html
+++ b/docs/epy/googleapiclient.discovery_cache.file_cache-module.html
@@ -215,7 +215,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.html b/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.html
index 63e979b..3734bbf 100644
--- a/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.html
+++ b/docs/epy/googleapiclient.discovery_cache.file_cache-pysrc.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 Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html b/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html
index 7428b2b..19a70c6 100644
--- a/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html
+++ b/docs/epy/googleapiclient.discovery_cache.file_cache.Cache-class.html
@@ -358,7 +358,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors-module.html b/docs/epy/googleapiclient.errors-module.html
index b446811..7005179 100644
--- a/docs/epy/googleapiclient.errors-module.html
+++ b/docs/epy/googleapiclient.errors-module.html
@@ -224,7 +224,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors-pysrc.html b/docs/epy/googleapiclient.errors-pysrc.html
index bf54492..3861ad6 100644
--- a/docs/epy/googleapiclient.errors-pysrc.html
+++ b/docs/epy/googleapiclient.errors-pysrc.html
@@ -289,7 +289,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.BatchError-class.html b/docs/epy/googleapiclient.errors.BatchError-class.html
index 1c8a411..25015a3 100644
--- a/docs/epy/googleapiclient.errors.BatchError-class.html
+++ b/docs/epy/googleapiclient.errors.BatchError-class.html
@@ -64,9 +64,9 @@
 <area shape="rect" id="node1_16" href="googleapiclient.errors.BatchError-class.html#__str__" title="str(x)" alt="" coords="17,508,311,527"/>
 <area shape="rect" id="node1" href="googleapiclient.errors.BatchError-class.html" title="Error occured during batch operations." alt="" coords="5,440,323,533"/>
 <area shape="rect" id="node2" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="125,379,203,421"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="101,273,227,292"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="89,243,239,299"/>
-<area shape="rect" id="node4" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="137,317,191,360"/>
+<area shape="rect" id="node3" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="137,317,191,360"/>
+<area shape="rect" id="node4_17" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="101,273,227,292"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="89,243,239,299"/>
 <area shape="rect" id="node5_18" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="85,28,241,47"/>
 <area shape="rect" id="node5_19" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="85,47,241,65"/>
 <area shape="rect" id="node5_20" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="85,68,241,87"/>
@@ -349,7 +349,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.Error-class.html b/docs/epy/googleapiclient.errors.Error-class.html
index 935c864..8fa8a30 100644
--- a/docs/epy/googleapiclient.errors.Error-class.html
+++ b/docs/epy/googleapiclient.errors.Error-class.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 Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.HttpError-class.html b/docs/epy/googleapiclient.errors.HttpError-class.html
index 367425e..37e436b 100644
--- a/docs/epy/googleapiclient.errors.HttpError-class.html
+++ b/docs/epy/googleapiclient.errors.HttpError-class.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 Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html b/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
index ea95e6d..2b51996 100644
--- a/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidChunkSizeError-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.InvalidJsonError-class.html b/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
index 551e098..36550c5 100644
--- a/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidJsonError-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html b/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
index 7b1b9f3..e262fd3 100644
--- a/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
+++ b/docs/epy/googleapiclient.errors.InvalidNotificationError-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html b/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
index 77fb1cc..0f795b4 100644
--- a/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
+++ b/docs/epy/googleapiclient.errors.MediaUploadSizeError-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.ResumableUploadError-class.html b/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
index fa6a131..6778ce2 100644
--- a/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
+++ b/docs/epy/googleapiclient.errors.ResumableUploadError-class.html
@@ -64,9 +64,9 @@
 <area shape="rect" id="node2_15" href="googleapiclient.errors.HttpError-class.html#__repr__" title="str(x)" alt="" coords="18,428,246,447"/>
 <area shape="rect" id="node2_16" href="googleapiclient.errors.HttpError-class.html#__str__" title="str(x)" alt="" coords="18,447,246,465"/>
 <area shape="rect" id="node2" href="googleapiclient.errors.HttpError-class.html" title="HTTP data was invalid or unexpected." alt="" coords="5,379,257,472"/>
-<area shape="rect" id="node3_17" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="70,273,195,292"/>
-<area shape="rect" id="node3" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="58,243,207,299"/>
-<area shape="rect" id="node4" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="106,317,159,360"/>
+<area shape="rect" id="node3" href="googleapiclient.errors.Error-class.html" title="Base error for this module." alt="" coords="106,317,159,360"/>
+<area shape="rect" id="node4_17" href="javascript:void(0);" title="exceptions.Exception.__new__" alt="" coords="70,273,195,292"/>
+<area shape="rect" id="node4" href="javascript:void(0);" title="Common base class for all non&#45;exit exceptions." alt="" coords="58,243,207,299"/>
 <area shape="rect" id="node5_18" href="javascript:void(0);" title="exceptions.BaseException.args" alt="" coords="54,28,210,47"/>
 <area shape="rect" id="node5_19" href="javascript:void(0);" title="exceptions.BaseException.message" alt="" coords="54,47,210,65"/>
 <area shape="rect" id="node5_20" href="javascript:void(0);" title="x.__delattr__(&#39;name&#39;) &lt;==&gt; del x.name" alt="" coords="54,68,210,87"/>
@@ -193,7 +193,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html b/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
index 9dfd7f7..ee56b12 100644
--- a/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
+++ b/docs/epy/googleapiclient.errors.UnacceptableMimeTypeError-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html b/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
index 9264372..12cd82a 100644
--- a/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
+++ b/docs/epy/googleapiclient.errors.UnexpectedBodyError-class.html
@@ -252,7 +252,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html b/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
index 89ada2c..643622a 100644
--- a/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
+++ b/docs/epy/googleapiclient.errors.UnexpectedMethodError-class.html
@@ -254,7 +254,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html b/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
index 84ca0f9..48b52bf 100644
--- a/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownApiNameOrVersion-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnknownFileType-class.html b/docs/epy/googleapiclient.errors.UnknownFileType-class.html
index 197b295..7bd8ccd 100644
--- a/docs/epy/googleapiclient.errors.UnknownFileType-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownFileType-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.errors.UnknownLinkType-class.html b/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
index d26a8b4..a504bc6 100644
--- a/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
+++ b/docs/epy/googleapiclient.errors.UnknownLinkType-class.html
@@ -187,7 +187,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http-module.html b/docs/epy/googleapiclient.http-module.html
index e0be81c..e93927c 100644
--- a/docs/epy/googleapiclient.http-module.html
+++ b/docs/epy/googleapiclient.http-module.html
@@ -544,7 +544,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http-pysrc.html b/docs/epy/googleapiclient.http-pysrc.html
index b5b2582..d2946d0 100644
--- a/docs/epy/googleapiclient.http-pysrc.html
+++ b/docs/epy/googleapiclient.http-pysrc.html
@@ -2164,7 +2164,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.BatchHttpRequest-class.html b/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
index f6fd6a0..eb647c2 100644
--- a/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
+++ b/docs/epy/googleapiclient.http.BatchHttpRequest-class.html
@@ -740,7 +740,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpMock-class.html b/docs/epy/googleapiclient.http.HttpMock-class.html
index 8cf1f23..a21b034 100644
--- a/docs/epy/googleapiclient.http.HttpMock-class.html
+++ b/docs/epy/googleapiclient.http.HttpMock-class.html
@@ -250,7 +250,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpMockSequence-class.html b/docs/epy/googleapiclient.http.HttpMockSequence-class.html
index c1367dd..e85272d 100644
--- a/docs/epy/googleapiclient.http.HttpMockSequence-class.html
+++ b/docs/epy/googleapiclient.http.HttpMockSequence-class.html
@@ -267,7 +267,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpRequest-class.html b/docs/epy/googleapiclient.http.HttpRequest-class.html
index 9fb7a9b..373b4f1 100644
--- a/docs/epy/googleapiclient.http.HttpRequest-class.html
+++ b/docs/epy/googleapiclient.http.HttpRequest-class.html
@@ -561,7 +561,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:14 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.HttpRequestMock-class.html b/docs/epy/googleapiclient.http.HttpRequestMock-class.html
index e5c34a5..040e0ab 100644
--- a/docs/epy/googleapiclient.http.HttpRequestMock-class.html
+++ b/docs/epy/googleapiclient.http.HttpRequestMock-class.html
@@ -279,7 +279,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html b/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
index 59fdc1b..70a127d 100644
--- a/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
+++ b/docs/epy/googleapiclient.http.MediaDownloadProgress-class.html
@@ -272,7 +272,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaFileUpload-class.html b/docs/epy/googleapiclient.http.MediaFileUpload-class.html
index c528f18..fb9d94a 100644
--- a/docs/epy/googleapiclient.http.MediaFileUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaFileUpload-class.html
@@ -392,7 +392,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html b/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
index 7c9e443..19caa45 100644
--- a/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaInMemoryUpload-class.html
@@ -297,7 +297,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html b/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
index 31f929b..3b10ab2 100644
--- a/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
+++ b/docs/epy/googleapiclient.http.MediaIoBaseDownload-class.html
@@ -314,7 +314,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html b/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
index 6b87167..d1c2a1b 100644
--- a/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaIoBaseUpload-class.html
@@ -674,7 +674,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaUpload-class.html b/docs/epy/googleapiclient.http.MediaUpload-class.html
index 4e9678a..9bd52fb 100644
--- a/docs/epy/googleapiclient.http.MediaUpload-class.html
+++ b/docs/epy/googleapiclient.http.MediaUpload-class.html
@@ -681,7 +681,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.MediaUploadProgress-class.html b/docs/epy/googleapiclient.http.MediaUploadProgress-class.html
index 0bea910..e9e58c7 100644
--- a/docs/epy/googleapiclient.http.MediaUploadProgress-class.html
+++ b/docs/epy/googleapiclient.http.MediaUploadProgress-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 Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http.RequestMockBuilder-class.html b/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
index 5a069f2..c1643ee 100644
--- a/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
+++ b/docs/epy/googleapiclient.http.RequestMockBuilder-class.html
@@ -319,7 +319,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.http._StreamSlice-class.html b/docs/epy/googleapiclient.http._StreamSlice-class.html
index fbd1a32..75b54a3 100644
--- a/docs/epy/googleapiclient.http._StreamSlice-class.html
+++ b/docs/epy/googleapiclient.http._StreamSlice-class.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 Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.mimeparse-module.html b/docs/epy/googleapiclient.mimeparse-module.html
index e684108..42d19f0 100644
--- a/docs/epy/googleapiclient.mimeparse-module.html
+++ b/docs/epy/googleapiclient.mimeparse-module.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 Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.mimeparse-pysrc.html b/docs/epy/googleapiclient.mimeparse-pysrc.html
index 7d088a8..88c2cc1 100644
--- a/docs/epy/googleapiclient.mimeparse-pysrc.html
+++ b/docs/epy/googleapiclient.mimeparse-pysrc.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 Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model-module.html b/docs/epy/googleapiclient.model-module.html
index 4fa6131..cdcac1c 100644
--- a/docs/epy/googleapiclient.model-module.html
+++ b/docs/epy/googleapiclient.model-module.html
@@ -306,7 +306,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model-pysrc.html b/docs/epy/googleapiclient.model-pysrc.html
index a148bdb..b3ee6e1 100644
--- a/docs/epy/googleapiclient.model-pysrc.html
+++ b/docs/epy/googleapiclient.model-pysrc.html
@@ -635,7 +635,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.BaseModel-class.html b/docs/epy/googleapiclient.model.BaseModel-class.html
index 9036553..2bce2cc 100644
--- a/docs/epy/googleapiclient.model.BaseModel-class.html
+++ b/docs/epy/googleapiclient.model.BaseModel-class.html
@@ -545,7 +545,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.JsonModel-class.html b/docs/epy/googleapiclient.model.JsonModel-class.html
index 8cdb85b..92394b4 100644
--- a/docs/epy/googleapiclient.model.JsonModel-class.html
+++ b/docs/epy/googleapiclient.model.JsonModel-class.html
@@ -432,7 +432,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.MediaModel-class.html b/docs/epy/googleapiclient.model.MediaModel-class.html
index 066853d..aef2bde 100644
--- a/docs/epy/googleapiclient.model.MediaModel-class.html
+++ b/docs/epy/googleapiclient.model.MediaModel-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 Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.Model-class.html b/docs/epy/googleapiclient.model.Model-class.html
index 4a0f63b..4cbbe47 100644
--- a/docs/epy/googleapiclient.model.Model-class.html
+++ b/docs/epy/googleapiclient.model.Model-class.html
@@ -297,7 +297,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html b/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
index d6192fc..b209cb7 100644
--- a/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
+++ b/docs/epy/googleapiclient.model.ProtocolBufferModel-class.html
@@ -436,7 +436,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:28 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.model.RawModel-class.html b/docs/epy/googleapiclient.model.RawModel-class.html
index 9d70811..2686858 100644
--- a/docs/epy/googleapiclient.model.RawModel-class.html
+++ b/docs/epy/googleapiclient.model.RawModel-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 Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.sample_tools-module.html b/docs/epy/googleapiclient.sample_tools-module.html
index cc07918..91a72bd 100644
--- a/docs/epy/googleapiclient.sample_tools-module.html
+++ b/docs/epy/googleapiclient.sample_tools-module.html
@@ -204,7 +204,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.sample_tools-pysrc.html b/docs/epy/googleapiclient.sample_tools-pysrc.html
index ee214ba..f1ce70c 100644
--- a/docs/epy/googleapiclient.sample_tools-pysrc.html
+++ b/docs/epy/googleapiclient.sample_tools-pysrc.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 Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema-module.html b/docs/epy/googleapiclient.schema-module.html
index 9d3e39f..c2477aa 100644
--- a/docs/epy/googleapiclient.schema-module.html
+++ b/docs/epy/googleapiclient.schema-module.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 Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema-pysrc.html b/docs/epy/googleapiclient.schema-pysrc.html
index 7d055bc..f072c42 100644
--- a/docs/epy/googleapiclient.schema-pysrc.html
+++ b/docs/epy/googleapiclient.schema-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 Tue Aug 16 12:42:16 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema.Schemas-class.html b/docs/epy/googleapiclient.schema.Schemas-class.html
index b4a0364..9ba7627 100644
--- a/docs/epy/googleapiclient.schema.Schemas-class.html
+++ b/docs/epy/googleapiclient.schema.Schemas-class.html
@@ -485,7 +485,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/docs/epy/googleapiclient.schema._SchemaToStruct-class.html b/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
index 80f3480..460e186 100644
--- a/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
+++ b/docs/epy/googleapiclient.schema._SchemaToStruct-class.html
@@ -509,7 +509,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:15 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:29 2016
     </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 b75ce90..c6a50e0 100644
--- a/docs/epy/help.html
+++ b/docs/epy/help.html
@@ -246,7 +246,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </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 b01e5ee..26e99e5 100644
--- a/docs/epy/identifier-index.html
+++ b/docs/epy/identifier-index.html
@@ -979,7 +979,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </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 f5ccaff..13ae9ee 100644
--- a/docs/epy/module-tree.html
+++ b/docs/epy/module-tree.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 Tue Aug 16 12:42:13 2016
+    Generated by Epydoc 3.0.1 on Mon Aug 29 10:18:27 2016
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
diff --git a/googleapiclient/__init__.py b/googleapiclient/__init__.py
index b911ff0..0753586 100644
--- a/googleapiclient/__init__.py
+++ b/googleapiclient/__init__.py
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-__version__ = "1.5.2"
+__version__ = "1.5.3"
 
 # Set default logging handler to avoid "No handler found" warnings.
 import logging